我正在解决一些Java难题,偶然发现了这个:
public class Outer {
class Inner1 extends Outer {}
class Inner2 extends Inner1 {}
}
在用javac 1.6.0_45编译这段代码时,不出所料,我得到了这个错误:
Outer.java:8: cannot reference this before supertype constructor has been called
class Inner2 extends Inner1 {}
我知道java中的内部类的每个实例都与其外部类的实例相关联,但我想知道这个过程是如何进行的。
更确切地说,当您编写以下内容时
public class Outer {
Inner root;
class Inner {
public Inner() {
next = (Math.random() > 0.5)? new Inner(): null;
}
Inner next;
}
}
root,root.next等.都与Outer的同一个实例相关联?编译器是否向内部构造函数添加参数?
public class ExternalizableClass implements Externalizable
{
public static ExternalizableClass CACHE = new ExternalizableClass(-1);
int id;
public ExternalizableClass()
{
id = (int)(Math.random() * 1000);
}
public ExternalizableClass(int i)
{
id = i;
}
@Override
publ
我尝试实例化在以下Java代码中定义的内部类:
public class Mother {
public class Child {
public void doStuff() {
// ...
}
}
}
当我尝试像这样获取Child的实例时
Class<?> clazz= Class.forName("com.mycompany.Mother$Child");
Child c = clazz.newInstance();
我得到了这个例外:
java.lang.
public class InterfaceTest {
interface InterfaceA {
int len = 1 ;
void output();
}
interface InterfaceB {
int len = 2 ;
void output();
}
interface InterfaceSub extends InterfaceA, InterfaceB { }
public class Xyz
我正在学习Java的内部和外部课程。我知道什么是内类和外部类,以及为什么要使用它们。我遇到了关于这个话题的以下问题,却找不到答案。
假设给出了以下代码:
class outer{
class inner{
}
}
class SubClass extends outer.inner{
}
问题:如何定义最小的子类构造函数?为什么?
Option 1-
Subclass () {
//reason: bacause the default constructor must always be provided
}
Option 2-
Subclass (Outer o
在下面的示例中,如果我为一个名为示例的类创建一个构造函数,如下所示:
public class Example{
public Example(){
this.super();
}
}
由于javac Example.java通知以下编译错误,上述操作将无法工作:
Example.java:3: error: illegal qualifier; Object is not an inner class
this.super();
^
1 error
但是,它不应该像使用super()那样隐式地声明super(),而是
我刚在Java工作,我有一个简单的问题。在以下守则中:
conversation.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
if (adapter.getItem(position).image && adapter.getI
在java中如何在静态类中声明内部类的对象?
public class xyz
{
static class abc
{
...
// I want to declare an object of class a here. how can I do this?
}
class a
{
...
}
}
我一直在研究java中的静态内部类。但我不清楚使用静态内部类或内部类的意义是什么。
class A{
static class B{
}
public static void main(String[] args) {
B b=new B();
}
}
或
class B{}
class A{
public static void main(String[] args) {
B b=new B();
}
}
在下面的代码中,Colours枚举GREEN值的成员字段在枚举定义之外是不可访问的:
public class Test {
enum Colours {
RED,
GREEN {
public static final int hex = 0x00ff00;
public final int hex2 = 0x00ff00; // Try it without static, just in case...
void f() {
System.
有没有任何方法来访问Java中本地内部类的方法。下面的代码是我之前尝试过的示例代码。根据这一点,访问mInner()方法的机制是什么?
class Outer{
int a=100;
Object mOuter(){
class Inner{
void mInner(){
int y=200;
System.out.println("mInner..");
System.out.println("y : "+y
可以在java6中序列化可运行的对象吗?我想将runnable对象存储到文件中。
如果没有,是否还有其他方法来实现这一目标?
我有一节课:
public abstract class SerializableRunnable implements Serializable, Runnable
{
private static final long serialVersionUID = 6217172014399079306L;
@Override
public abstract void run();
}
然后,我有另一个类,容器,前一个:
public clas
我正在使用ClassNotFoundException获得一个Class.forName(),它传递一个驻留在同一个包中的公共静态类的完全限定名。这是我做测试的时候。
下面是完整的堆栈跟踪:
java.lang.AssertionError
at org.junit.Assert.fail(Assert.java:86)
at org.junit.Assert.assertTrue(Assert.java:41)
at org.junit.Assert.assertNotNull(Assert.java:712)
at org.junit.Assert.asse
public class fakultaet1 {
public static long fakultaet(long n) {
if (n<0)
throw new FakultaetNichtDefiniertException(n);
if (n==0)
return 1;
long fakultaet = 1;
while(n>1){
fakultaet *= n; // had a litt
我在试着用Dataflow进行单元测试。
对于这个测试,我将从一个简单的硬编码字符串开始。
问题是,我需要将该字符串转换为pubsub消息。我有以下代码可以这样做:
// Create a PCollection from string a transform to pubsub message format
PCollection<PubsubMessage> input = p.apply("input string", Create.of("test" +
""))
代码“newMystack<>();”是红色下划线,编译器错误:“不能访问LinkedListStack类型的封闭实例。必须用LinkedListStack类型的封闭实例限定分配(例如,x.new A(),其中x是LinkedListStack的实例)。”
但我不明白这个信息,怎么了?
import java.util.LinkedList;
public class LinkedListStack {
public static void main(String[] args) {
MyStack<Integer> stack = new
我有一个用于过滤项目的接口:
public interface KeyValFilter extends Serializable {
public static final long serialVersionUID = 7069537470113689475L;
public boolean acceptKey(String iKey, Iterable<String> iValues);
public boolean acceptValue(String iKey, String value);
}
和一个包含KeyValFilter类型的成员的类。
我正在我的应用程序中实现一些单元测试,并且我有一个依赖于Application上下文的依赖项。该依赖项返回一个Item列表,但我想模拟这个逻辑,以返回我想要的任何内容。
我已经知道了以下几个方面的区别:
( a) when(foo.method1()).return(bar)
( b) doReturn(bar).when(foo).method1()
(b)不应该调用该方法。
现在,我有了一个在ItemHelper.kt中调用的方法:
fun retrieveItems(): MutableList<Item> {
val boxStore = BoxStore.getI
我仍然在处理同一个项目(基于Java的shell),并试图运行它--却得到了一个奇怪的错误。我使用的是一个代表其中一个命令的类,因为学校的计算机没有编译器,所以我使用。无论如何,我收到了一个错误,虽然我以前见过它,但它的位置真的很奇怪。错误:
Main.java:56: error: no enclosing instance of type LIST_Command is in scope
public FAKE_CMD(int i) {this.msg = i;System.out.println(i);}
^
这不应该是在调用
试图编写一个允许客户端相互发送对象的程序。我目前正在使用ObjectOuptutStream通过套接字发送它,每当我尝试从对象流中读取或写入一个对象时,它都会给出异常:ObjectOuptutStream我在网上搜索了这个异常,我得到的解决方案主要是在您从流发送或读取的对象上实现可序列化接口。我做了,但仍然收到了这个例外。
下面是object类:
public class Event implements Serializable {
private static final long serialVersionUID = 1L;
Integer from;
Vec
当我想要创建对象TransLog的实例时,即使我在类TransLog中创建了一个No-Args构造函数,也会抛出一个InstantiationException
Caused by: java.lang.NoSuchMethodException: TransactionLogger$TransLog.<init>()
at java.lang.Class.getConstructor0(Class.java:3082)
at java.lang.Class.newInstance(Class.java:412)
... 20 mor