Tag: 静态

从Java中的静态方法获取类名

如何从这个类的静态方法获得类的名字。 例如 public class MyClass { public static String getClassName() { String name = ????; // what goes here so the string "MyClass" is returned return name; } } 为了把它放在上下文中,我实际上希望返回类名作为异常中消息的一部分。

强大的静态面向对象Scala的多样化替代方案

我想知道是否有任何替代Scala的尝试提供更强大的类型系统和语法。 我知道像Haskell这样的功能性选择,但是有没有真正推动事物的静态OO方面,例如在Scala缺乏的地方,如虚拟类,完全多重继承和更灵活的构造函数语法,static合同检查,更强大的路径依赖,MyTypes,朋友修改,一流的进口,或者一些深奥的打字工具,我甚至没有想到/听说过。 面向对象,在一定程度上静态这些天似乎并不流行。 然而,现代计算机的力量使得编译器的创建超出了过去几十年编译器作者的梦想。 我认为,因为我没有遇到任何事情,没有别的选择,我很可能很快就要淘汰生产代码。 但是,即使他们仍然是学术语言,我还是要留意他们,也许还会玩弄他们。 我正在寻找什么可能被称为左侧领域替代斯卡拉。 所以不是锡兰或者科特林,他们试图把简单性放在优先权上。 埃菲尔这几天似乎没有去。 我遇到过gBeta和Ceasar,但是如果有什么地方输给Scala的话,一直没法解决。 还有其他的可能吗?

在Kotlin中调用Java静态方法的可能性

假设我们有一个Java静态方法: //Java code public static void printFoo() { System.out.println("foo"); } 在Kotlin中可以调用这个方法吗?

我怎样才能创建“静态”方法在科腾的枚举?

Kotlin已经有了一些枚举类的“静态”方法,比如values和valueOf 例如,我有枚举 public enum class CircleType { FIRST SECOND THIRD } 如何添加静态方法,如random(): CircleType ? 扩展功能似乎不适合这种情况。

如何获得IntelliJ IDEA代码完成作为Kotlin顶级函数导入静态Java方法?

在编辑Kotlin代码时,IntelliJ IDEA代码完成提示了静态Java方法,但是它导入了Java类,而不是静态方法作为顶级函数(请参阅函数作用域 )。 例如键入“chrome”并按Enter将import org.openqa.selenium.remote.DesiredCapabilities并将“chrome”替换为“DesiredCapabilities.chrome()”,而不是添加import org.openqa.selenium.remote.DesiredCapabilities.chrome并将“铬“作为”铬“。 如何获得IntelliJ IDEA代码完成作为顶级函数导入静态Java方法?

Kotlin – 是否可以在类的init块之前初始化伴侣对象?

是否可以在Kotlin类的init块之前初始化companion object ? 如果是这样,怎么样? 如果没有,是否有办法完成同样的事情。 我有以下情况, class A(val iname: String) { init { foo.add(this) } companion object B { @JvmField val STATIC = A("hi") @JvmField val foo = mutableListOf<A>() } fun printAllStatics() { for (a in foo) { print(a.iname) } } } 并调用printAllStatics会导致一个空指针异常。

Kotlin对象vs伴随对象与包范围方法

我已经在Kotlin中写了这个方法,并分析了字节码: 情况1 class A { object b { fun doSomething() {} } } 情况2 class A { companion object b { fun doSomething() {} } } 情况3 fun doSomething() {} 字节码结果 情况1:class Test$asb , public final doSomething()I 情况2:class Test$Companion , public final doSomething()I 情况3:class TestKt , public final static doSomething()I 我的问题是: 我有一个枚举类,我想返回一个枚举instace给定一个枚举变量,例如,findById (enum(id, color)) 。 […]

Kotlin:声明一个Activity静态的子类

在将Java代码转换为包含子类Fragment的Activity后,布局将无法正确渲染(logcat错误朝向本文底部)。 我想,因为声明一个活动的子类必须声明为静态的 ,这是我转换为Kotlin后的: class SettingsActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_settings) } override fun onOptionsItemSelected(item: MenuItem): Boolean { if (item.itemId == android.R.id.home) { finish() return true } return super.onOptionsItemSelected(item) } // Apparently the following class must be declared static. class SettingsFragment : PreferenceFragmentCompat(), OnSharedPreferenceChangeListener { override fun onCreatePreferences(savedInstanceState: Bundle, rootKey: String) […]

将静态变量从Java转换为Kotlin

我试图将下面的代码转换为Kotlin,并仍然有一个由Java使用的类(Foo)。 什么是做这种转换的正确方法? 原始Java: public class Foo { public static final String C_ID = "ID"; public static final String C_NAME = "NAME"; public static final String[] VALUES = {"X", "Y", "Z"}; public static String[] getAll() { return new String[] {C_ID, C_NAME}; } } public class Bar { public void doStuff() { String var1 = Foo.C_ID; String[] […]

静态字段在kotlin中

我是Kotlin的新手,并试图将我的Android活动转换为Kotlin,但是我不知道如何将字段声明为静态。 我想转换下面的代码… public class MainActivity extends AppCompatActivity { static String TAG = "MainActicity"; @Override protected void onCreate(Bundle savedInstanceState) { …. } …. } 任何人都可以帮忙吗? 提前致谢!