Tag: 内部类

如何从外部类访问内部类的私有属性?

我已经在静态内部类中读到了这个概念:ViewHolder在ListView的适配器中声明为内部类,以增强getView()的性能。 考虑下面的课程 public class OuterClass{ public class InnerClass{ private int privateProperty= -2; } public static void main(String[] args) { OuterClass oc = new OuterClass(); InnerClass ic = oc.new InnerClass(); ic.privateProperty = -98; } } 如果内部类包含私有属性,并且在外部类的方法内创建内部类的对象,则可以使用直接访问内部类私有属性。 ‘dot’运算符。 我在某处读过使用外部类的合成setter getter方法访问内部类的私有属性 我想清楚我的概念。

从内部类中获取事件,扩展SwingWorker

我试图从内部类中触发事件,但它不起作用。 这是我的代码: 摘要型号: public abstract class AbstractModel { public PropertyChangeSupport propertyChangeSupport; public AbstractModel() { propertyChangeSupport = new PropertyChangeSupport(this); } public void addPropertyChangeListener(PropertyChangeListener listener) { propertyChangeSupport.addPropertyChangeListener(listener); } public void removePropertyChangeListener(PropertyChangeListener listener) { propertyChangeSupport.removePropertyChangeListener(listener); } protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) { propertyChangeSupport.firePropertyChange(propertyName, oldValue, newValue); } } 模型: public class GUImodel extends AbstractModel { // […]

Android内部类内存泄漏和上下文泄漏?

我在启动画面中使用Handler将重定向延迟到下一个活动,如下所示。 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.entrance); screenTimeOut(); } private void screenTimeOut() { /* New Handler to start the next screen * and close this Entrance after some seconds.*/ new Handler().postDelayed(new Runnable() { @Override public void run() { initTracker(); /* Create an Intent that will start the Next-Activity. */ checkLoginStatus(); } }, SPLASH_DISPLAY_LENGTH); […]

将Regular Regular Int转换为Final Java

我试图在循环中实现内部类,并进入一个有趣的情况。 内部类有方法,但是,当我尝试访问变量时,Netbeans给了我一个编译器错误并告诉我使int最终。 由于int是循环变量,因此它不能是最终的。 我已经尝试创建新变量并将它们等同于循环变量,但这仍然会引发相同的错误。 这是基本语法(伪代码): for(int i = 0; i < 10; i++) { panels[i].printI(new printI(){System.out.println(i);}); } 有任何想法吗?

Java:组合generics,内部类和“实现”的问题

我遇到了generics, implements和内部类的问题。 我正在创建一个包含内部类的LinkedBinaryHeap类。 这个内部类是通用的HeapNode ,它扩展了我创建的通用Node类; 它只是为键/优先级添加变量和方法。 在LinkedBinaryHeap我创建了一个通用的LinkedList来存储HeapNode 。 我假设存储的通用数据扩展了Comparable类。 这是什么存储什么的布局: BinaryHeap->LinkedList(Nodes)->HeapNode(extends Node)->DATA,KEY 我的问题是在声明LinkedList : LinkedList heap; eclipse强调HeapNode并给我错误: 绑定不匹配:LinkedBinaryHeap.HeapNode类型不是 有效替代有界参数> LinkedList类型 我认为错误告诉我HeapNode必须实现Comparable ,但是我的Node类实现了Comparable ,所以这是照顾的,对吗? 我尝试了各种不同的东西,但似乎没有任何效果,下面的代码是我最接近的。 请注意,我已经尝试将implements Comparable Node从HeapNode内部类中HeapNode ,并且它什么都没有改变。 码: LinkedBinaryHeap.java: public class LinkedBinaryHeap<E extends Comparable> { private LinkedList heap; public LinkedBinaryHeap(){ heap = new LinkedList(); } /* INNER CLASS DECLARATION. */ private class HeapNode extends […]

在java中创建外部类外部的内部类的实例

我是Java的新手。 我的文件A.java看起来像这样: public class A { public class B { int k; public B(int a) { k=a; } } B sth; public A(B b) { sth = b; } } 在另一个java文件中,我正在尝试创建一个A对象调用 anotherMethod(new A(new AB(5))); 但由于某种原因,我得到错误: No enclosing instance of type A is accessible. Must qualify the allocation with an enclosing instance of type A (egxnew […]

使用generics投射到内部类

请考虑以下代码: public class Outer { public class Inner{ } public static Outer.Inner get(){ Object o = new Object(); return (Outer.Inner)o; } public static void main(String[] args) throws Exception { Outer.get(); } } 此代码在Eclipse中成功编译,但无法在javac中javac : Outer.java:10: ‘)’ expected return (Outer.Inner)o; ^ Outer.java:10: ‘;’ expected return (Outer.Inner)o; ^ Outer.java:10: illegal start of expression return (Outer.Inner)o; ^ 3 […]

方法本地内部类在Java中提供了什么好处?

我刚刚阅读了SCJP书中关于方法本地内部类的章节,我真的很难想到它们的任何实际用途。 我总是在这样的印象中,方法应该尽可能小和特定于他们的任务( Orthogonality IIRC),因此即使是最简单的内部类,也会创建一个重要且难以处理的方法。 任何人都可以建议方法本地内部类的一个很好的实际用法? 到目前为止,感觉好像我可能必须完全理解它们才能通过考试,而不是用于日常编码。 干杯

Java:为什么在定义字段之前引用字段时没有警告?

在定义或初始化静态字段之前,不能引用静态字段: static Integer j = i; /* compile error */ static final Integer i = 5; 但是,当从实例初始化块(在匿名内部类中)引用它时,甚至不会生成警告。 见例子: class StaticInitialization { static final Object o = new Object() {{ j = i; }}; static Integer j, k; static final Integer i = 5; static final Object o2 = new Object() {{ k = i; }}; […]

Java – 内部类构造函数 – 仅允许外部类

我的代码中有内部类。 我希望公开访问它的实例,但只有外部类应该能够创建这个实例,就像在“私有”访问中一样。 是否有可能在没有制作适当的小包装(或为每个这样的内部类创建公共接口)? (对不起,如果我的英语不好:P)