小编Eve*_*one的帖子

main(...)提供了使用静态初始化程序作为伪入口点的哪些好处?

java中程序的入口点通常是这样的


    // MyMain.java
    public class MyMain{  
      //whatever 
        public static void main(String args[]){ 
        System.out.println("balderdash");
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,由于main中只有一个SOP,因此上述类可能是这样的


    // MyMain.java
    public class MyMain{
        //whatever
        static {    
        System.out.println("balderdash");
        }
    }

使用main(...)的一个明显优点是参数可以传递给程序.另一个(我在这里猜测)可能与垃圾收集器有关,不同地处理在静态块中创建的对象.

使用语言定义的入口点还有其他好处 - public static void main(String args [])而不是使用静态初始化程序.

ps上述代码段仅供参考,可能无法编译

java entry-point static-initializer

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

最佳实践:使用什么反射?

我正在考虑允许模块在属性文件中使用类; 就像是

availableModules.properties
Contact=org.addressbook.ContactMain
Business=org.addressbook.BusinessMain
Notes=org.addressbook.Notes
Run Code Online (Sandbox Code Playgroud)

...

我的框架将使用反射来实例化相关模块,然后在相关基类上调用方法,或者根据需要将对象作为参数传递.

  • 以上是使用反射的好地方吗?
  • 是否有关于在SO上发布反射的最佳实践(我无法找到一个)?我们可以在这些行开始列表,并在此处发布任何回复吗?

编辑这是我想到的那种场景的另一个例子.

确定呼叫点需要一些核心代码.我看到的一个应用程序通过使用反射实现了这一点,另一个应用程 您是否认为前者是可以应用反射的推荐方案?

reflection

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

Executors.newSingleThreadScheduledExecutor的用法

javadoc for

Executors.newSingleThreadScheduledExecutor 
Run Code Online (Sandbox Code Playgroud)

说"...保证返回的执行程序不可重新配置以使用其他线程".

上述句子是什么意思?这是否意味着返回的实例可能没有嵌套线程?

java multithreading

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

如何使用POP3检索gmail子文件夹/标签?

下面的代码使用javamail API来访问gmail,

    String host = "pop.gmail.com";
    int port = 995;
    Properties properties = new Properties();
    properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

    final javax.mail.Session session = javax.mail.Session.getInstance(properties);
    store = session.getStore("pop3s");
    store.connect(host, port, mCredentialaNme, mCredentialApss);

// ***************************************************************
Folder personalFolders[] = store.getDefaultFolder().list( "*" );
    // ***************************************************************
    for (Folder object : personalFolders) {
        // ***********************************
        System.out.println( object.list("*") );    
        // ***********************************
        if ((object.getType() & javax.mail.Folder.HOLDS_MESSAGES) != 0){
            object.open(Folder.READ_ONLY);
            Message messes[] = object.getMessages();

            System.out.println(object.getFullName());
            System.out.println("====================");
            for (Message object1 : messes) {
                System.out.println(object1.getFrom() + " - " + object1.getSubject());
            }
            object.close(false); …
Run Code Online (Sandbox Code Playgroud)

java gmail label pop3 jakarta-mail

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