Eclipse的Java编译器只是程序所在的同一个核心的包装器javac,还是一个单独的编译器?如果是后者,为什么他们会重新发明轮子?
我有一些使用泛型的Guice绑定代码,它可以从Eclipse的编译器编译和运行,但不能从Java(命令行)编译器编译.我升级到最新的(1.7.0_01)Java SDK但仍然收到以下错误.
[error] ...\BindCategorySelectorActivity.java:42: error: inconvertible types
[error] (Class<? extends ListAdapterDataProvider<Row<? extends DatabaseItem>>>) CategoryDataProvider.class);
[error] ^
[error] required: Class<? extends ListAdapterDataProvider<Row<? extends DatabaseItem>>>
[error] found: Class<CategoryDataProvider>
[error] 1 error
[error] {file:/.../compile:compile: javac returned nonzero exit code
Run Code Online (Sandbox Code Playgroud)
相关代码:
public interface Category extends DatabaseItem {}
public class CategoryDataProvider implements
ListAdapterDataProvider<Row<Category>> {}
public class BindListViewHandlerWithSpecificProvider extends AbstractModule {
public BindListViewHandlerWithSpecificProvider(
Class<? extends ListAdapterDataProvider<Row<? extends DatabaseItem>>>
dataProviderClass) {}
}
@SuppressWarnings("unchecked")
// Error happens here:
final BindListViewHandlerWithSpecificProvider
bindListViewHandlerWithSpecificProvider =
new BindListViewHandlerWithSpecificProvider(
(Class<? extends ListAdapterDataProvider<Row<? extends …Run Code Online (Sandbox Code Playgroud) 当我在Eclipse IDE下编译java源代码时,我生成的类文件比javac在控制台中编译时更大.
你能告诉我背后的原因吗?