我不确定Java是否可以实现,但我正在尝试实现一个在编译时不可用的接口**并将其作为该接口的对象传递给另一个类.假设我有一个界面,如:
public interface MyInterface {
void onReceive(int i);
}
Run Code Online (Sandbox Code Playgroud)
和另一类如:
public void MyClass {
ArrayList<MyInterface> listenerList = new ArrayList<MyInterface>();
public void add(MyInterface m) {
listenerList.add(m);
}
}
Run Code Online (Sandbox Code Playgroud)
如果它们在编译时可用,我将使用它们:
blah = new MyInterface() {
public void onReceive(int i) {
System.out.println("BLAH");
}
}
MyClass mc = new MyClass();
myClass.add(blah);
Run Code Online (Sandbox Code Playgroud)
我想知道如果前两个类只在运行时可用,是否有办法编写与上面相同的代码.
提前致谢!
**我正在尝试使用Android的ROM中的框架库,但它是在dalvik字节码中,所以我不能用它来编译.
更新:这是我用来测试解决方案的一些示例代码:
文件a/IIMSListener.java
// Excerpt from decompiled class
public interface IIMSListener
{
void onReceive(int p0, int p1/*, IMSParameter p2*/);
}
Run Code Online (Sandbox Code Playgroud)
文件a/IMSRemoteListenerStub.java
// Excerpt from decompiled class
import java.util.concurrent.*;
import java.util.*; …
Run Code Online (Sandbox Code Playgroud) 对于我的项目,我想运行一个生成安装文件的命令(换句话说,生成的文件只是一个数据文件,而不是源代码).
我目前在我的CMakeLists.txt中有以下内容
add_custom_command(
OUTPUT outputfile.txt
COMMAND dosomething ${CMAKE_CURRENT_SOURCE_DIR}/inputfile.txt
${CMAKE_CURRENT_BINARY_DIR}/output.txt
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/inputfile.txt
)
add_custom_target(
run_gen_command
ALL
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/output.txt
)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/output.txt
DESTINATION ${CMAKE_INSTALL_DATADIR}/somewhere
)
Run Code Online (Sandbox Code Playgroud)
这工作正常,但因为ALL
传递给add_custom_target()
,每次运行时命令都会执行make
.
有没有什么办法可以改变这个命令,只有当输入文件改变时才运行命令?该命令可能需要一段时间才能完成,因此理想情况下,除非需要,否则不会运行该命令.
提前致谢!
我是Emacs文本编辑器的新手,刚刚开始自定义我的~/.emacs
文件.我想知道在运行时是否可以更改Emacs设置.例如,如果我将以下内容放入我的~/.emacs
文件中:
(show-paren-mode 1)
Run Code Online (Sandbox Code Playgroud)
当Emacs运行时,我可以通过键入来执行相同的操作:
M-x然后scroll-step呢1.
当我想做这样的事情时,为什么这不起作用:
(setq scroll-step 1)
Run Code Online (Sandbox Code Playgroud)
当我输入:
M-x然后setq,
我得到的只是(no match)
.我必须在这里理解一些东西.