Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java函数=函数2_Java - Fatal编程技术网

Java函数=函数2

Java函数=函数2,java,Java,我对Java有点陌生,我想知道是否有办法以某种方式更改类的函数 Class pager = new Pager();// everything is initialized pager.dostuff() = function(){}; 是否有一个特定的名称,是否可以用Java实现?如果没有,是否有一种语言允许这样做 谢谢你抽出时间 编辑: 澄清这个问题,因为最初我似乎想用不同的函数初始化新类。事实并非如此。我想在它被创建后再进行更改。原因是我正在使用android,而我得到的类来自xml。当

我对Java有点陌生,我想知道是否有办法以某种方式更改类的函数

Class pager = new Pager();// everything is initialized
pager.dostuff() = function(){};

是否有一个特定的名称,是否可以用Java实现?如果没有,是否有一种语言允许这样做

谢谢你抽出时间

编辑:

澄清这个问题,因为最初我似乎想用不同的函数初始化新类。事实并非如此。我想在它被创建后再进行更改。原因是我正在使用android,而我得到的类来自xml。当我得到这样的类时,是否可以更改类的函数

Pager pager = (ViewPager) findViewById(R.id.pager)

我觉得我必须创建一个新类,这还可以,但我想看看是否可以这样做。

在java中,您可以在运行时重写方法,如-

Pager pager = new Pager(){
  @Override
  public void dostuff(){
     ....
  }
};

运行时,它将创建寻呼机的子类并覆盖
doStuff
方法。

在java中,您可以在运行时覆盖方法,如-

Pager pager = new Pager(){
  @Override
  public void dostuff(){
     ....
  }
};

运行时,它将创建Pager的子类,并重写
doStuff
方法。

当然。可以通过通过注释性内部类重写类,同时继承被重写类的所有属性

Pager pager = new Pager(){
  public void dostuff(){
     ....
  }
}

PS:-注意,在匿名内部类之外,您可以通过annonymous内部类的实例仅调用父类中存在的那些方法。当然,可以通过annonymous内部类重写类,同时继承被重写类的所有属性

Pager pager = new Pager(){
  public void dostuff(){
     ....
  }
}

注意,在匿名内部类之外,您可以通过您的匿名内部类的实例只调用父类中存在的那些方法。 也许您可以重写子类中的函数

您上面展示的内容可以在Ruby中完成(我想)

凌驾

Pager pager = new Pager() {
    @Override
     public void doStuff() {
        doSomethingElseFunct();
    }
};

Java不提供这样的功能。 也许您可以重写子类中的函数

您上面展示的内容可以在Ruby中完成(我想)

凌驾

Pager pager = new Pager() {
    @Override
     public void doStuff() {
        doSomethingElseFunct();
    }
};


你到底想做什么?另外,这在javaJavascript中是无效的语法,JavaScript将允许您执行类似的操作。但是你的目标到底是什么呢?想想这个问题是关于java中的函数指针的。看看这个,您可以在Java8中执行类似的操作,但现在您必须等待。当然不是“替换”一个函数,而是用一个“函数接口”做一些类似的事情。“有没有一种语言允许这样做?”--回答--Javascript允许这样做。你到底想做什么?另外,这在javaJavascript中是无效的语法,JavaScript将允许您执行类似的操作。但是你的目标到底是什么呢?想想这个问题是关于java中的函数指针的。看看这个,您可以在Java8中执行类似的操作,但现在您必须等待。当然,不是“替换”一个函数,而是做一些类似于“函数接口”的事情。“有没有一种语言允许这样做?”——回答——Javascript允许这样做。AbhinavKumar和@SubhrajyotiMajumder有相同的代码。。。我可以知道为什么吗?无论是类风格还是接口风格,代码通常都是为其他内部类编写的。Kathy SierraAbhinavKumar和@Subbrajyotimajumder在SCJP认证中使用了相同的格式,它们具有相同的代码。。。我可以知道为什么吗?这就是为什么代码通常是为其他内部类编写的,无论是类风格还是接口风格。Kathy在SCJP认证中使用相同的格式Sierra@AbhinavKumar和SubhrajyotiMajumder有相同的代码。。。我可以知道为什么吗?为什么!因为这可能是首选的方式。还有一件事
@Override
注释可以很好地证明方法的正确性。@AbhinavKumar和SubhrajyotiMajumder有相同的代码。。。我可以知道为什么吗?为什么!因为这可能是首选的方式。还有一件事
@覆盖了
注释,它紧密地证明了方法的正确性。