Java内部类用法[重复]
Posted
技术标签:
【中文标题】Java内部类用法[重复]【英文标题】:Java Inner Class usage [duplicate] 【发布时间】:2016-07-01 15:31:24 【问题描述】:这是一个Java内部类问题,代码如下:
public class Load
/*
static //load
System.loadLibrary("lvb");
*/
public class FILTER_T
HP05_T hp;
LP40_T lp;
NOTCH50_T notch;
// Load.FILTER_T.HP05_T hp;
// Load.FILTER_T.LP40_T lp;
// Load.FILTER_T.NOTCH50_T notch;
public class HP05_T
public int[] buf;
public long y1;
public long y2;
public int ptr;
public class LP40_T
public int[] buf;
public int ptr;
public class NOTCH50_T
public int[] buf;
public int ptr;
public native void func1(FILTER_T filter);
public native int func2(FILTER_T filter, int in);
public native int[] func3(int a,int[] in,FILTER_T filter);
public static void main(String[] args)
Load load = new Load();
load.FILTER_T ff = new load.FILTER_T();
load.func1(ff);
load.func2(ff, 120);
排队
load.FILTER_T ff = new load.FILTER_T();
有一个编译错误:
错误:包
load
不存在
我想知道是否有人知道问题和解决方法。
【问题讨论】:
封闭实例表达式只需要在实例化表达式中,不需要在变量的类型声明中。 你可以使用FILTER_T ff = new FILTER_T();
而不加前缀。
为什么它们是内部类?它们似乎不需要 ant 对其封闭实例的引用,因此它们可以是静态嵌套类而不是内部类。您的命名也不尊重 Java 约定,并且将所有内容公开是一种巨大的代码气味。反正语法是FILTER_T ff = load.new FILTER_T();
Java 区分大小写,因此load
与Load
不同
所有这些答案都是错误的!它是一个 inner 类,需要一个 instance 来进行实例化。正确的是load.new FILTER_T();
【参考方案1】:
这是一个内部的非静态类。您对我们使用外部类的实例来实例化它是正确的。但是,正确的语法是:
FILTER_T ff = load.new FILTER_T();
【讨论】:
以上是关于Java内部类用法[重复]的主要内容,如果未能解决你的问题,请参考以下文章