这被认为是内联匿名方法吗?

Bla*_*man 5 java

 public void insert(final String key, final String value) throws Exception {
    execute(new Command(){
      public Void execute(final Keyspace ks) throws Exception {
        ks.insert(key, createColumnPath(COLUMN_NAME), bytes(value));
        return null;
      }
    });
  }
Run Code Online (Sandbox Code Playgroud)

新的Command()的主体看起来像一个内联方法?

这叫什么,我想完全理解这一点.

Jon*_*eet 11

这是一个匿名的内部阶级.您正在创建一个派生自Command类的类或只是实现Command接口.在这种情况下,你只是覆盖一个方法,但你可以覆盖更多 - 以及有额外的字段等.

Java(目前)没有任何与C#匿名方法完全相同的东西,如果你正在考虑的话.一个匿名的内部类可能是最接近它的东西.


Mic*_*ers 5

这是一个匿名课程.

Command 是以前定义的接口或类,因此这相当于:

public void insert(final String key, final String value) throws Exception {
    class MyCommand implements Command { // or "extends Command"
        public Void execute(final Keyspace ks) throws Exception { 
            ks.insert(key, createColumnPath(COLUMN_NAME), bytes(value)); 
            return null; 
        } 
    }
    execute(new MyCommand());
}
Run Code Online (Sandbox Code Playgroud)