相关疑难解决方法(0)

在类内部的接口和接口中创建类有什么用?

我想知道在类内部放置类和在类中的接口需要什么?

class A {
   interface B {}
}

interface D {
   class E {}
} 
Run Code Online (Sandbox Code Playgroud)

java interface class

25
推荐指数
2
解决办法
2万
查看次数

java traits还是mixins模式?

有没有办法在java中模拟mixins或traits?基本上,我需要一种方法来进行多重继承,因此我可以将常用的业务逻辑添加到多个类中

java traits mixins

15
推荐指数
3
解决办法
2万
查看次数

Java接口 - 实现对

是否有为接口方法创建默认实现的首选方法或样式?假设我有一个常用的界面,在90%的情况下我想要的功能是相同的.

我的第一直觉是用静态方法创建一个具体的类.然后,当我想要默认功能时,我会将功能委托给静态方法.

这是一个简单的例子:

接口

public interface StuffDoer{
    public abstract void doStuff();
}
Run Code Online (Sandbox Code Playgroud)

具体实施方法

public class ConcreteStuffDoer{
    public static void  doStuff(){
        dosomestuff...
    }
}
Run Code Online (Sandbox Code Playgroud)

使用默认功能的具体实现

public class MyClass implements StuffDoer{
    public void  doStuff(){
        ConcreteSuffDoer.doStuff();        
    } 
}
Run Code Online (Sandbox Code Playgroud)

这里有更好的方法吗?

编辑

在看到一些提议的解决方案后,我想我应该更清楚我的意图.本质上我试图解决Java不允许多重继承.另外要明确我不是要声明Java是否应该允许多重继承.我只是在寻找为实现接口的类创建默认方法实现的最佳方法.

java design-patterns

15
推荐指数
3
解决办法
9414
查看次数

在接口中编写类有什么用?

我在其中一个java论坛中找到了以下示例.

interface employee{
    class Role{
          public String rollname;
          public int roleId;
          public Object person;
     }
    Role getRole();
    // other methods
}
Run Code Online (Sandbox Code Playgroud)

我已经执行了上面的代码片段并且它正在成功编译.这意味着我们可以在界面中拥有一个类.

我的问题是拥有这些课程的用途是什么?是任何设计模式?

java interface class

14
推荐指数
1
解决办法
4540
查看次数

如何在接口中实现嵌套的非静态类?

有这个课

public abstract class Mother{
  public class Embryo{
    public void ecluse(){
      bear(this);
    }
  }
  abstract void bear(Embryo e);
}
Run Code Online (Sandbox Code Playgroud)

只有我有一个母亲的实例,我才能创建一个胚胎实例:

new Mother(){...}.new Embryo().ecluse();
Run Code Online (Sandbox Code Playgroud)

题:

  • 如何定义Mother作为界面?

java interface

7
推荐指数
1
解决办法
118
查看次数

接口内的嵌套类

java编译器允许我在接口内编写一个Class定义.这有什么具体用途吗?

interface ClassInterface {

  void returnSomething();
  int x = 10;

  class SomeClass {
    private int y;

    private void classDoingSomething() {         
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

请解释 .

java interface nested-class

6
推荐指数
1
解决办法
3126
查看次数

Java接口 - 普通接口中的常量和静态类

考虑以下界面.

public interface ThirdPartyApiHandler {

    public OperationResult doOperation(OperationInput input);

    public static class OperationResult {
         //members of OpeationResult. metrics after file processing
         private int successfulRecords;
         private int failedRecords;
    }  

    public static class OperationInput {
         //implementations call third party API to process this file.
         private String inputBatchFile; 
    }  

    //Constant which would be same across all implementations.
    public static final int GLOBAL_CONSTANT = 1;
}
Run Code Online (Sandbox Code Playgroud)

界面设计不好吗?

  1. OperationResultOperationInput定义为静态类.它们仅用于实现而不是其他任何地方.我在这里看到的优点是 - 我不必为这两个类创建单独的文件.他们也获得了父类的命名空间.

  2. 我已阅读有关常量接口的信息.但在这种情况下,我在普通接口中定义常量,这些常量在所有实现中都必须相同,并且将在这些实现中使用.

我是第一次使用这种模式,所以想得到建议.

java

5
推荐指数
1
解决办法
344
查看次数

在接口中使用嵌套类很有用的地方?

在哪种情况下接口可以嵌套类?

以下代码是允许且有效的.

public interface Iface {

    void show();

    class ifaceClass {
        int x;

        public ifaceClass() {
            System.out.println(x);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我也在努力创建类ifaceClass的对象.

编辑:

我能够制作这样的物体

public class Test implements Iface {    

    public static void main(String[] args){
        ifaceClass  ifaceClassObj = new ifaceClass();
    }

    public void show() {    

    }
}
Run Code Online (Sandbox Code Playgroud)

我注意到如果Test没有实现Iface那么我需要在导入之后,

import com.jls.Iface.ifaceClass;
Run Code Online (Sandbox Code Playgroud)

但它归结为同样的问题,为什么不把它用作另一个类.

这种方法的差异或增值是什么?

java interface nested-class

5
推荐指数
1
解决办法
189
查看次数

标签 统计

java ×8

interface ×5

class ×2

nested-class ×2

design-patterns ×1

mixins ×1

traits ×1