Tag: static

可以在Java中实例化静态嵌套类吗?

从Oracle的Java 教程中我发现了这个文本: 与类方法和变量一样,静态嵌套类与其外部类相关联。 和静态类方法一样,静态嵌套类不能直接引用其封闭类中定义的实例变量或方法 – 它只能通过对象引用来使用它们。 注意:静态嵌套类与其外部类(和其他类)的实例成员交互,就像任何其他顶级类一样。 实际上,静态嵌套类在行为上是一个顶级类,它已嵌套在另一个顶级类中以方便打包。 使用封闭的类名访问静态嵌套类: OuterClass.StaticNestedClass 例如,要为静态嵌套类创建对象,请使用以下语法: OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass(); 我认为不可能实例化一个静态类,所以我并不真正理解粗体句。 你知道这意味着什么吗?

为什么我的ArrayList包含添加到列表中的最后一项的N个副本?

我正在向ArrayList添加三个不同的对象,但该列表包含我添加的最后一个对象的三个副本。 例如: for (Foo f : list) { System.out.println(f.getValue()); } 预期: 0 1 2 实际: 2 2 2 我犯了什么错误? 注意:这是针对本网站上出现的众多类似问题的规范问答。

错误:参数的非法修饰符

我正在使用这些代码行…… public static final int WIDTH = 240; public static final int HEIGHT = 350; public static final int SCALE = 2; 但我总是遇到这些错误…… Illegal modifier for parameter WIDTH; only final is permitted Illegal modifier for parameter HEIGHT; only final is permitted Illegal modifier for parameter SCALE; only final is permitted

导入Math.PI作为参考或值

我正在准备Java的基本认证。 我对一个我正确的问题(!)的答案感到有些困惑: – 鉴于: public class Circle { static double getCircumference(double radius ) { return PI * 2 * radius; } public static double getArea(double radius) { return PI * radius * radius; } } 哪个import语句将使代码能够编译和运行? import java.lang.*; import static java.lang.Math.PI; import java.lang.Math.*; import java.lang.Math; 我回答了import static java.lang.Math.PI; 但下面两个其他选项的解释让我困惑: – 语句导入java.lang.Math; 并导入java.lang.Math。*; 不会启用代码编译和运行。 这些import语句只允许Math.PI作为PI常量的引用。 我的问题是:导入语句只允许引用PI常量会出现什么问题? […]

Struts2 – 从静态列表设置属性使用OGNL无效的String属性

我正在尝试使用struts2框架设置隐藏的输入值。 输入值是一个不变的值,所以我想通过静态引用设置它,而不是担心在Controller中的多个位置设置它。 这是列表定义: package com.packagename.models; public class UsernameModel implements Serializable, Comparable { … /** * A static container of the predefined username types. */ public static final class UsernameTypes { public static final String ALIAS = “Alias”; public static final String ASSIGN_NUM = “Assignment Number”; } … } 我意识到这可能超出了问题的范围,但是当我尝试在隐藏输入中引用属性时会抛出exception: <s:hidden name="username_type" value="”> org.apache.jasper.JasperException:/WEB-INF/content/user/profile.jsp(第185行,第64列)未终止的<s:hidden标签 如果我从s:hidden输入中删除属性标记,则exception消失,但“Alias”字符串应该出现的地方没有文本。 – […]

为什么这段代码不会抛出NullPointerException

我刚刚与我的朋友讨论了使用类名调用静态方法,并尝试了这个代码,并期望它在运行时抛出NPE。但事实certificate它是dint。 我只是想了解执行顺序。 public class One { public static void method() { System.out.println(“in static one”); } } public class Two { static One o; public static void main(String[] args) { o.method(); // expected NPE here, as o is null } } 我知道静态方法应该用它们的类名调用,我甚至知道当我们用实例调用静态方法时IDE会给出编译器警告 。 但是我们也可以通过创建一个实例来调用它们,但是,我从来没有在这里创建过实例, o应该得到它的默认值null,因此调用o.method()应该在运行时抛出一个NPE,但事实并非如此。 你们能不能对这段代码中的执行顺序有所了解。

在scala中访问java基类的静态成员

我用Java编写了一些代码。 对于新课程,我打算用Scala编写。 我有一个关于访问基类的受保护的静态成员的问题。 以下是示例代码: Java代码: class Base{ protected static int count = 20; } 斯卡拉码: class Derived extends Base{ println(count); } 有什么建议吗? 如何在不修改现有基类的情况下解决这个问题

如何创建一个静态Map of String – > Array

我需要创建一个静态Map ,它将给定的String映射到int的数组。 换句话说,我想定义类似的东西: “fred” -> {1,2,5,8} “dave” -> {5,6,8,10,11} “bart” -> {7,22,10010} … etc 在Java中有一种简单的方法吗? 如果可能的话,我想对String和int值使用static常量。 编辑:为了澄清我的static常量对于值的意义,并给出我认为正确的代码,这是我对解决方案的第一次尝试: public final static String FRED_TEXT = “fred”; public final static String DAVE_TEXT = “dave”; public final static int ONE = 1; public final static int TWO = 2; public final static int THREE = 3; public final static […]

为什么非静态内部类不能拥有静态成员(字段和方法)?

可能重复: 为什么我们在内部类中没有静态方法? 我知道创建一个非静态内部类对象需要一个外部类对象,而创建的非静态内部类对象自动拥有一个对外部类对象的隐藏引用。 但为什么非静态内部类不能有静态成员呢? Java设计者只需要禁止在内部类的静态方法内访问非静态外部类字段,它会更有意义,非? 如果在内部类中使用静态成员没有意义,为什么内部类可以通过inheritance具有静态成员的类来inheritance静态成员? 我也读了这篇文章 。 如上所述: 内部类可以inheritance非编译时常量的静态成员,即使它们可能不会声明它们。 不是内部类的嵌套类可以根据Java编程语言的通常规则自由地声明静态成员。 这是一个惯例吗? 这是我的代码: public class OuterClass { private int outerClassField; public void doSomethingOuterClass() { outerClassField = 1; } public static void doSomethingStaticOuterClass() { // outerClassField = 2; // Error: Because static method cannot access an specific object’s field } public class InnerClass extends ClassWithStaticField { […]

java类的最终字段是否应该是静态的?

我在网上找不到任何关于此的参考资料。 但只是想知道一个类中的最终字段是否应该始终是static还是仅仅是一个约定。 基于我对它们的用途的理解,我觉得比语言强加的东西更符合逻辑。