当前位置: 首页 > 面试题库 >

Scala中的静态内部类

羊冠玉
2023-03-14
问题内容

在Scala中使用Java进行模拟的模拟方式是什么:

public class Outer {
  private Inner inner;

  public static class Inner {
  }

  public Inner getInner() { return inner; }
}

我特别希望我的内部类 不必
具有完全限定的名称-即,我Trade.Type不需要TradeType。因此,在Scala中,我想到的可能是这样的:

class Outer(val inner: Inner) {
    object Inner
}

但这似乎不起作用:我的scala Inner似乎在Outer课堂外都看不到。一种解决方案当然是:

class Inner
class Outer(val inner: Inner)

这是确定-但因为我的课的名字,Inner真是的“类型” OuterOuter实际上有一个很长的名字。所以:

class SomeHorriblyLongNameType
class SomeHorriblyLongName(myType: SomeHorriblyLongNameType)

这是冗长而可怕的。我可以替换SomeHorriblyLongNameType为just,Type但是与它所关联的类之间没有明显的联系。ew


问题答案:

如果不需要访问内部类中的外部类,则可以执行以下操作(如果声明了内部类,则在Java中是不需要的static):

object A{
    class B {
        val x = 3
    }
}
class A {
    // implementation of class here
}
println(new A.B().x)


 类似资料:
  • 问题内容: 如果存在Kotlin语言,可以用什么替代方法?如果没有,当我需要在Kotlin中使用时如何解决此问题?请参见下面的代码示例: 我搜索了很多东西,没有发现任何东西,非常感谢。 问题答案: 只需在Kotlin中省略。 内部类(持有对外部对象的引用) Java: 科特林: 静态内部类又称为嵌套类(不引用外部对象) Java: 科特林:

  • 静态内部类是指使用 static 修饰的内部类。示例代码如下: 上述示例中的 Inner 类就是静态内部类。静态内部类有如下特点。 1) 在创建静态内部类的实例时,不需要创建外部类的实例。 2) 静态内部类中可以定义静态成员和实例成员。外部类以外的其他类需要通过完整的类名访问静态内部类中的静态成员,如果要访问静态内部类中的实例成员,则需要通过静态内部类的实例。 3) 静态内部类可以直接访问外部类的

  • 问题内容: 我了解到,Java文件中唯一的公共类也必须具有main方法。但是,下面您可以看到内部类内部的main方法呢?关于源文件中主要方法定义的规则是什么? 问题答案: 如果要使用Java(Java启动器:java test.MyClass)启动类,则该类必须具有带有众所周知签名的main方法。 您可以在任意位置使用具有相同签名的main方法。但是不要期望启动器会找到它。 PS语言的名称是Jav

  • 本文向大家介绍深入浅析Java中Static Class及静态内部类和非静态内部类的不同,包括了深入浅析Java中Static Class及静态内部类和非静态内部类的不同的使用技巧和注意事项,需要的朋友参考一下 java中的类可以是static吗?答案是可以。在java中我们可以有静态实例变量、静态方法、静态块。类也可以是静态的。 java允许我们在一个类里面定义静态类。比如内部类(nested

  • 问题内容: 静态和非静态嵌套类有什么区别? 问题答案: 根据定义,内部类不能是静态的,因此我将重述您的问题为“静态和非静态嵌套类之间有什么区别?” 非静态嵌套类具有对其嵌套的类的成员的完全访问权。静态嵌套类没有对嵌套实例的引用,因此静态嵌套类无法调用非静态方法或访问嵌套该类的实例的非静态字段。

  • 我想使用Powermock(基于EasyMock)模拟私有静态内部类。这不是来自生产代码,这只是一个是否可能的问题。我很确定这是一个糟糕的设计,但这是我为科学而努力的东西。 假设我们有一个具有静态私有内部类的类: IExpectationSetters中的andReturn(capture)不能应用于(java.lang.Object)  私人静态内部阶级的嘲笑甚至可能吗?我还没有在SO上找到一个