小编tus*_*omi的帖子

Eclipse 构建器产生 indexoutofbounds 异常

阅读:这不是我产生异常的代码。这纯粹是建造者犯了这个错误。这不是与 indexoutofbounds 异常相关的任何问题的重复,因为它涉及书面代码。

我正在使用最新版本的 eclipse,当我尝试在工作区中构建任何项目时,出现以下错误

'Errors occurred during the build.
Errors running builder 'Java Builder' on project '[project]'.
offset 9673, count -7399, length 13677'
Run Code Online (Sandbox Code Playgroud)

查看日志会产生完整的堆栈跟踪:

!ENTRY org.eclipse.jdt.ui 4 0 2020-11-13 22:54:50.333
!MESSAGE Error in JDT Core during reconcile
!STACK 1
Java Model Exception: java.lang.StringIndexOutOfBoundsException: offset 9673, count -7399, length 13677
    at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:324)
    at org.eclipse.jdt.internal.core.CompilationUnit.buildStructure(CompilationUnit.java:192)
    at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:268)
    at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:596)
    at org.eclipse.jdt.internal.core.CompilationUnit.makeConsistent(CompilationUnit.java:1141)
    at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.makeConsistent(ReconcileWorkingCopyOperation.java:173)
    at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:94)
    at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:736)
    at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:802)
    at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1318)
    at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:131)
    at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:113)
    at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:93)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at …
Run Code Online (Sandbox Code Playgroud)

java eclipse metadata compiler-errors

5
推荐指数
0
解决办法
843
查看次数

void* (*)() 和 void* 有什么区别?

在我的一个程序中,我收到错误

invalid conversion from 'void* (*)()' to 'void*' [-fpermissive]
Run Code Online (Sandbox Code Playgroud)

我试图了解这两种数据类型之间的区别。这很令人困惑。

我认为这些数据类型是:
void* (*)()所以这个数据类型是一个指向 void ( void*)的指针,它还有另一个指针 ( (*)),并且出于某种奇怪的原因,它有空括号。所以我想象的这种数据类型的内存看起来像|--void address--|--pointer of unknown type--|--something denoting no arguments--|

然后是void*。这看起来很简单,它只代表一个函数的地址。内存模型应该像|--void address--|.

为什么这么奇怪,是抛出错误的函数如下。

void callFunction(void *voidThing){
void *testVariable = voidThing;
}
Run Code Online (Sandbox Code Playgroud)

据我所知,这会创建一个指针类型的 testVariable,并且该指针指向 void。该函数还接受一个指针类型的参数,该指针也指向 void。

为什么编译器会抛出错误,即使局部变量与参数类型相同?就两者的内存占用而言,变量之间有什么区别?

c++ microcontroller types pointers avr

2
推荐指数
1
解决办法
132
查看次数

在Java中,如何从接口中获取实现接口的类?

我有这个界面

public interface Deserializable{
    static <T> T deserialize(byte[] bytes) {
        ReflectionDeserializer rd = new ReflectionDeserializer();
        return rd.Deserialize(bytes);
    }
}
Run Code Online (Sandbox Code Playgroud)

存在一个问题,ReflectionDeserializer 在其构造函数中需要一个类实例。在这种情况下,我想要传入的类是该implements语句所在的类的类,因此如果我有 public class Cat implements Deserializable,我希望将接口放入Cat.class构造函数中。

我该怎么做呢?

java reflection interface

1
推荐指数
1
解决办法
150
查看次数