java - 匿名类和外部私有(private)字段

标签 java swing field inner-classes anonymous-class

在一个方法中定义一个新的匿名类,然后将一个实例分配给一个外部类的私有(private)字段是否合法,就像下面的代码中所评论的那样?我正在学习 Java 并试图了解这背后的原因。谢谢!

public class Outer{
    private int id;
    private String name;
    private SwingWorker doSomething; //Is it ok not to include it in the constructor?  
 public Outer (int id, String name){

    //constructor, but didn't include the instance doSomething
 }
 public void fuctionOne(){
    Swingworker doSomething =new SwingWorker<int, Void>(){
        protected int DoInBackground(){
          ...........// created an anonymous class and override methods 

最佳答案

 public void fuctionOne(){
    Swingworker doSomething = new SwingWorker<int, Void>(){
        protected int DoInBackground(){...

您在这里定义和初始化一个局部变量,而不是分配给 Outer 类的成员。

如果你想初始化OuterdoSomething成员,做

 public void fuctionOne(){
    doSomething = new SwingWorker<int, Void>(){
        protected int DoInBackground(){...

通常,您不必在构造函数中初始化类的所有成员。如果您不初始化它们,它们将获得默认值(在引用类型的情况下为 null)。您只需确保在实际使用它们之前对它们进行初始化。

关于java - 匿名类和外部私有(private)字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26312918/

相关文章:

java - 在 Java 中更新动态 TextArea

eclipse - 如何将自定义组件添加到 Eclipse swing 调色板?

java - 字符串键在 L&F 中的位置

php - 为什么我不能在 stdClass 上调用 property_exists?

java - 为我的类扩展引发 InstantiationException

java - 使用 BoxLayout 布局管理器自动调整高度

java - 以编程方式将 Logback 设置为记录到 gzip 文件

java - 如果 JPanel 填满屏幕,它不会移动

php - 结帐字段 - 使 billing_address_2 高于 billing_address_1

Java Flight Recorder - 如何提取自定义事件字段的值?