Leg*_*end 18 java macros boilerplate
我只是好奇人们如何解决这个问题.我经常写相同类型的代码.例如:
new Thread() {
//...
//...
//...
//Change this line
//...
//...
}.start();
Run Code Online (Sandbox Code Playgroud)
我不断更改"更改此行"的行,然后启动一个主题.此更改可以是一行或几行.我将如何压缩此代码?
gnu*_*nud 21
好吧,我想你可以通过C预处理器运行你的java文件......
Jas*_*man 18
您可以使用模板模式创建包含公共代码的基类.例如:
public abstract class ThreadTemplate extends Thread
{
public void run() {
//reusable stuff
doInThread();
//more resusable stuff
}
abstract void doInThread();
}
Run Code Online (Sandbox Code Playgroud)
然后使用样板代码启动一个线程就像这样简单:
new ThreadTemplate{
void doInThread() {
// do something
}
}.start();
Run Code Online (Sandbox Code Playgroud)
此外,一个不太优雅的解决方案,以节省自己的一些打字是使用您的ide的模板功能.您可以在此处找到有关在Eclipse中设置它们的一些信息,您可以在Useful Eclipse Java代码模板中找到有用的列表
一种技术是将代码放在匿名内部类中,并将其传递给执行其余操作的方法.
interface SomeInterface {
void fn();
}
executeTask(new SomeInterface {
public void fn() {
// Change this line.
}
});
private void executeTask(final SomeInterface thing) {
Thread thread = new Thread(new Runnable() { public void run() {
//...
//...
//...
thing.fn();
//...
//...
}});
thread.start();
}
Run Code Online (Sandbox Code Playgroud)
一般来说,Thread如果没有必要,扩展或其他类不是一个好主意.
| 归档时间: |
|
| 查看次数: |
12471 次 |
| 最近记录: |