public class MyWindow extends JFrame {
JButton botonCreate = new JButton("Open son windows");
public void doSomething(){
botonCreate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JDialog vce = new JDialog(t
在Java (和Android)中,static class和final class声明有什么用处?
我的问题不是关于静态实例,而是类声明,
static class StaticClass {
//variables and methods
}
和
final class FinalClass {
//variables and methods
}
谢谢,
今天,我了解到您可以在分隔符(.,或“点运算符”)旁边使用.运算符。这让我怀疑Java是否对新操作符的所有出现都隐式地使用了相同的技术。
下面的语句创建一个新的"InnerClass对象“。它使用一个新的ParentClass对象(使用.new )来实现这一点。但是,该语句中的第一个new操作符之前没有构造函数(或对象)。那么,Java在编译时添加了一个吗?我尝试在这个语句中显式地添加一个(Main()),但是代码无法编译。
ParentClass.InnerClass ic = new ParentClass().new InnerClass();
我的Eclipse工作台在抛出错误后关闭:
Throwable during asyncExec
Malformed class name
附图也是截图。
下面是错误
!ENTRY org.scala-ide.sdt.core 4 0 2018-04-21 12:10:18.717
!MESSAGE Throwable during asyncExec
!STACK 0
java.lang.InternalError: Malformed class name
at java.lang.Class.getSimpleName(Unknown Source)
at java.
我知道以前有人问过这个问题,但大多数关于某个库的问题都很具体。而给出的答案并没有真正地向我解释到底发生了什么。
这就是为什么我在这里设置了一个非常简单的测试场景,并试图篡改它,但是仍然有一些问号!!
简单的代码由两个文件组成:
Main.java
public class Main
{
public static void main(String[] args) {
// this works, and inner1 and inner2 seem to be new instances
Outer.Inner inner1 = new Outer.In
我是Java新手,正在尝试编写一个简单的程序来帮助我进一步理解面向对象的编程。
我决定做一个电话节目。然而,在下面程序的第5行,我试图创建一个phone类的实例,我得到了以下错误:
“没有OOPTutorial类型的封闭实例可访问。必须用OOPTutorial类型的封闭实例限定分配(例如x.new A(),其中x是OOPTutorial的实例)。”
下面是程序:
public class OOPTutorial {
public static void main (String[] args){
phone myMobile = new phone();
在以下场景中,我很难找到正确的重构选项:
我有这样的代码(在Outer.java中):
public class Outer {
// ... class stuff
public static class Inner {
// ... inner class stuff
}
}
我正在寻找一种方法来选择内部,并让它转换为顶级类,在它自己的.java源文件。我知道手动复制/粘贴等操作非常容易,但是内部类在很多地方都是引用的,我希望refactor选项可以在引用的任何地方处理更改。
我已经尝试了Refactor -> Extract Cla
静态内部类中非静态字段的实时效用是什么?另外,静态内部类的实例创建是如何工作的:
class Outer {
static class Inner {
public final String text = "Inner";
}
}
public class A {
public static void main(String[] args) {
System.out.println(new Outer.Inner().text);
}
}
可能重复:
我知道创建非静态内部类对象需要一个外部类对象,而创建的非静态内部类对象自动具有对外部类对象的隐藏引用。但是为什么一个非静态的内部类不能有静态成员呢?Java设计人员只要不允许访问内部类的静态方法中的非静态外部类字段,就更有意义了,不是吗?
如果在内部类中拥有静态成员没有意义,那么为什么内部类可以通过继承具有静态成员的类来继承静态成员呢?
我也读过这个。如上文所述:
内部类可能继承不是编译时常量的静态成员,即使它们可能不声明它们。不属于内部类的嵌套类可以根据Java编程语言的通常规则自由声明静态成员。
这是个会议吗?
这是我的代码:
public class Out
我设计了一个课程:
public class CustomEvent< P, T >
{
/** Facade interface used for adopting user interfaces to our generic class. */
public interface ICaller< P, T >
{
/** callback facade method. */
void call( P parent, T callback, Object... objects );
}
/** Abstract class for
可能重复:
有人能帮助我理解如何使用getConstructor创建内部类的实例吗?
这就是我现在的处境。
import java.lang.reflect.*;
public class Outer{
public Outer(int i){
//things to do
}
public class Inner{
Class<?>[] type = new Class<?>[1];
Class<?> myClass;
public Inner(int i){
//stuff and code
}
public v
我想要创建一个包含实体的模拟。有两种实体,复杂的和简单的。当我实例化一个简单的模拟时,我希望这个简单的实体被实例化,当我实例化一个复杂的模拟时,我希望这个复杂的实体被实例化。
实体:
class ComplexEntity extends Entity {
public ComplexEntity(){}
}
class SimpleEntity extends Entity {
public SimpleEntity(){}
}
class Entity {
public Entity(){}
}
模拟:
class ComplexSimulation exte
我对Java很陌生,但我在C#上工作了多年。所以我要把用Java编写的代码翻译成C#。一切都还好,但我想出了一个似乎很奇怪的密码。以下是代码:
//Java Version
public class ParentClass{
ArrayList<SomeType> values;
void MyFunction(){ /*some codes*/ }
//other codes
public class NestedClass {
public void handleMessage(SomeType val) {
假设我有以下内容:
public class A {
//stuff
public class B implements I {}
}
public interface I {}
public class Foo {
int bar(I i) {}
}
现在为什么Java给我一个构建错误‘不适用于类型...’当我试图在类A的主体内将B的实例传递给Foo.bar()时?
内部类不被认为是i的正确实现,因为它包含在顶级类中吗?
干杯,戴夫。
我在Java中遇到以下问题,如果内部类在外部类的方法中声明,如何初始化内部类的实例?在下面的例子中我遇到了一个编译错误。非常感谢。
class Outer {
public int a = 1;
private int b = 2;
public void method(final int c){
int d = 3;
class Inner{
private void iMethod(int e){
System.out.println("a = " + a);
我知道有很多类似的问题,但在这一点上没有一个对我有帮助。
我使用的是一个名为Tynamo的CRUD框架,它依赖于Apache Tapestry和Hibernate。这一切都运行得很好,除了当我尝试在具有复合/复合主键的表上使用它进行CRUD时。
我决定不走@EmbeddedId路线,因为它似乎根本不适用于框架。话虽如此,我一直在使用@IdClass方法,它基本上是有效的;我想我离成功只差一两行代码了。
问题是,当它开始使用反射来构建对象时,它会爆炸,并说,org.hibernate.InstantiationException: No default constructor for entit
我刚刚开始学习Java教程,我决定花一些时间来处理嵌套类。
我制作的工作副本是一个自行车类,其中可能包含零个或多个骑士类实例。在自行车的实例中,我希望能够与Riders的实例一起工作。
在下面的例子中,我的自行车有一个ArrayList,它保存它的骑士,但是如果可能的话,我想避免维护这个列表。
我的问题是这个。是否有其他方法来引用自行车骑手的实例,或者我必须维护我自己的列表?
//Outer Class contains zero or more Inner Classes
public class Bicycle {
//ArrayList of Inner Class insta
请帮帮忙,我有一个客户端和一个服务器,我正在从客户端发送一个对象,其中的代码是send packet of data:
class Data implements Serializable {
/**
*
*/
// private static final long serialVersionUID = 1L;
String a = "ok baby";
String b = "hi there";
}
public void Con
我想知道有没有什么方法可以改变与非静态内部类相关的外部类引用。例如,在下面的代码中,我是否可以将i的外部类引用更改为指向o而不是o1?
/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class outer {
public class inner
在Java中,我们使用final关键字和变量来指定它的值不被改变。但是我发现你可以改变类的构造函数/方法中的值。再次,如果变量是static那么这是一个编译错误。
这里是代码:
import java.util.ArrayList;
import java.util.List;
class Test {
private final List foo;
public Test()
{
foo = new ArrayList();
foo.add("foo"); // Modification-1
}
public static