小编And*_*niy的帖子

覆盖一个类中许多类的许多方法

public class EventController extends MouseAdapter implements ActionListener {

    private EventModel model;
    private EventView  view;
    String tableClick;
    Events events;    

    /** Constructor */
   public EventController(EventModel myModel, EventView myView){
       model = myModel;
       view = myView;     
   }

   public void setUpListeners() {
       this.view.addEventButton.addActionListener(this); 
       this.view.addEventMenuItem.addActionListener(this);
       this.view.editEventMenuItem.addActionListener(this);
       this.view.tableEvent.addMouseListener(this);                
   }

   @Override
   public void actionPerformed(ActionEvent e){
       Object button = e.getSource();
       if(button==this.view.addEventButton) {
           setEventDetails();          
       }                
   }

   @Override
   public void mouseClicked(java.awt.event.MouseEvent event) {
      int rowSelected = view.tableEvent.getSelectedRow();
       //blahblahblah
      view.changeDisplay(events);
    }
Run Code Online (Sandbox Code Playgroud)

我如何覆盖keyPressedKeyListener类的方法,就像我已经完成的那样mouseClicked,ActionPerformed我真的不想覆盖keyTypedkeyReleased,只是 …

java events swing keylistener actionlistener

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

如何在java中调用常量?

这个问题可能听起来有点怪,但是,我如何在java中调用常量?问题是我正在玩AlertDialog android类.由于这个类有受保护的构造函数,我无法在我创建对话框的活动类中调用它们.所以我创建了一个子AlertDialog类并使其构造函数公开,如下所示:

public class TestAlert extends AlertDialog {

public TestAlert(Context context) {
    super(context); 
}   

public TestAlert(Context context, int theme) {
    super(context, theme);      
}
}
Run Code Online (Sandbox Code Playgroud)

然后我创建了这样的对话框:

TestAlert ta = new TestAlert(con, AlertDialog.THEME_DEVICE_DEFAULT_DARK);
    ta.setMessage("Hello");     
    ta.show();
Run Code Online (Sandbox Code Playgroud)

这里奇怪的是这段代码是错误的:AlertDialog.THEME_DEVICE_DEFAULT_DARK 我不知道为什么.

从关于AlertDialog类的Android开发者页面,我们可以清楚地看到这些主题是常量.(公共,静态,最终).由于它们是静态的,因此应使用类名调用,后跟一个点.他们也是公开的,所以应该没有问题.但奇怪的是我不能那样做.但是,如果我传递数字而不是常量名称,它的工作方式如下:

new TestAlert(con, 2);
Run Code Online (Sandbox Code Playgroud)

ps:我知道我应该用它AlertDialog.Builder来构建对话.但我们称之为"探索".

帮助appriciated.

java android android-alertdialog

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

休眠中的有效滚动:session.evict vs session.clear vs CacheMode.IGNORE

考虑一个典型的任务,当我们必须通过滚动数据库中的适当结果来构建巨大的文件报告时。ORM 框架是Hibernate. 我们知道,有 3 种方法可以避免OutOfMemoryException这种模式:

  1. 使用session.evict(...)

    ScrollableResults customers = session.createQuery("from Customers order by id").scroll(ScrollMode.FORWARD_ONLY);
    while (customers.next()) {
        Customer customer = (Customer) customers.get(0);
        addDataToReport(customer);
        session.evict(customer);
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用session.clear()

    ScrollableResults customers = session.createQuery("from Customers order by id").scroll(ScrollMode.FORWARD_ONLY);
    int i = 0;
    while (customers.next()) {
        Customer customer = (Customer) customers.get(0);
        addDataToReport(customer);
        if ( ++i % 1000 == 0) session.clear();
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用CacheMode.IGNORE

    ScrollableResults customers = session.createQuery("from Customers order by id").setCacheMode(CacheMode.IGNORE).scroll(ScrollMode.FORWARD_ONLY);
    while (customers.next()) {
        Customer customer …
    Run Code Online (Sandbox Code Playgroud)

java hibernate

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

"java.lang.NoClassDefFoundError:org/springframework/core/type/AnnotatedTypeMetadata"

@Bean
    public JavaMailSender mailSender() {
        JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
        mailSender.setDefaultEncoding("UTF-8");
        mailSender.setHost("smtp.googlemail.com");
        mailSender.setPort(465);
        mailSender.setUsername("XXXXXXXXX@gmail.com");
        mailSender.setPassword("XXXXXXXXXXXXXXX");
        Properties properties = new Properties();
        properties.put("mail.smtp.auth", true);
        properties.put("mail.smtp.starttls.enable", true);
        mailSender.setJavaMailProperties(properties);
        return mailSender;
    }
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用javamailsender发送邮件,因为我使用注释配置了上面的代码,之后我得到了" java.lang.NoClassDefFoundError: org/springframework/core/type/AnnotatedTypeMetadata"异常任何建议appriciate.

spring-mvc jakarta-mail

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

如何在Intellij IDEA中为Apache Tomcat指定自定义JRE路径?

问题是如何JREApache tomcatin 指定自定义路径Intellij IDEA(从启动应用程序时IDEA)?

似乎只是jvm.dllApache Tomcat监视器中配置其路径(路径)没有帮助.有任何其他想法或方法如何做到这一点?

java windows configuration tomcat intellij-idea

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

如何获得SSL证书sha1指纹?

我如何获得sha-1指纹,如下所示:

// A.T. C.     
{ { { 0xf9, 0xb5, 0xb6, 0x32, 0x45, 0x5f, 0x9c, 0xbe, 0xec, 0x57,
    0x5f, 0x80, 0xdc, 0xe9, 0x6e, 0x2c, 0xc7, 0xb2, 0x78, 0xb7 } },
{"1.3.6.1.4.1.34697.2.1", ""},  },
Run Code Online (Sandbox Code Playgroud)

来自Chromium来源(net / cert / ev_root_ca_metadata.cc)。如果是加密货币?

当我尝试时,我总会得到这个

04:A0:56:A9:87:64:BB:DC:96:BF:6D:B0:49:FA:80:81:ED:06:8A:1E
Run Code Online (Sandbox Code Playgroud)

我可以使用哪个程序以及该命令的名称是什么来以加密方式获取?

编辑

我将在Firefox / Chrome中添加EV证书。

ssl firefox openssl sha1 fingerprint

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

Openshift tomcat的日志:catalina.out和localhost.out内容

WARopenshift tomcat7弹药筒下部署了我的应用程序.

在我的应用程序中我使用log4j.我log4j.properties看起来像:

log4j.rootCategory=info, A1, A2
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A2=org.apache.log4j.FileAppender
log4j.appender.A2.File=myapp.log
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %p (%t) [%c] - %m%n
log4j.appender.A1.encoding=UTF-8
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d %p (%t) [%c] - %m%n
log4j.appender.A2.encoding=UTF-8
Run Code Online (Sandbox Code Playgroud)

问题是$OPENSHIFT_LOG_DIR我的openshift应用程序中的文件夹中只有两个日志文件:

[myapp.rhcloud.com logs]\> ls
jbossews.log  postgresql.log
Run Code Online (Sandbox Code Playgroud)

jbossews.log我看到只有与catalina.out本地运行应用程序相关的日志行Tomcat 7.更具体地说,在jbossews.log我看到一般错误信息,如:

INFO: Deploying web application archive /var/lib/openshift/54...1d/app-root/runtime/dependencies/jbossews/webapps/myapp.war
Mar 05, 2015 12:00:02 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
Mar 05, 2015 12:00:02 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/myapp] startup …
Run Code Online (Sandbox Code Playgroud)

java logging tomcat openshift

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

lambda表达式的隐式类型转换

考虑以下课程:

public void method() {
    test(() -> { });
}

void test(Runnable a) {
    System.out.println("Test 1");
}

void test(A a) {
    System.out.println("Test 2");
}

interface A extends Runnable {

}
Run Code Online (Sandbox Code Playgroud)

调用方法method()将导致Test 2输出.这意味着,lambda表达式() -> { }被隐式转换为A.为什么?

java lambda overloading type-conversion java-8

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

如何使用 Java 替换文件中的特定行?

如何使用 FileWriter 和 PrintWriter 在文本文件中的特定行上书写?我不想每次都创建一个新文件。

编辑:我可以循环遍历文件,在指定的行号处获取字符串的长度,然后在到达该行后使用该长度退格(删除字符串),然后写入新数据?

public static void setVariable(int lineNumber, String data) {
    try { 
        // Creates FileWriter. Append is on.
        FileWriter fw = new FileWriter("data.txt", true);       

        PrintWriter pw = new PrintWriter(fw);       

        //cycles through file until line designated to be rewritten is reached
        for (int i = 1; i <= lineNumber; i++) {     
            //TODO: need to figure out how to change the append to false to overwrite data
            if (i == lineNumber) {
                pw.println(data);
                pw.close();
            } else {          
                // …
Run Code Online (Sandbox Code Playgroud)

java filewriter printwriter

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

试图对lambda性能进行基准测试

我读过这篇文章:Java 8 lambdas和匿名内部类之间的性能差异并提供了文章

它说:

Lambda调用的行为与匿名类调用完全相同

"好的"我说并决定编写我自己的基准测试,我已经使用过jmh,这里是下面的(我还添加了方法参考的基准).

public class MyBenchmark {

    public static final int TESTS_COUNT = 100_000_000;

    @Benchmark
    public void testMethod_lambda() {
        X x = i -> test(i);
        for (long i = 0; i < TESTS_COUNT; i++) {
            x.x(i);
        }
    }
    @Benchmark
    public void testMethod_methodRefernce() {
        X x = this::test;
        for (long i = 0; i < TESTS_COUNT; i++) {
            x.x(i);
        }
    }
    @Benchmark
    public void testMethod_anonymous() {
        X x = new X() {
            @Override …
Run Code Online (Sandbox Code Playgroud)

java performance lambda microbenchmark java-8

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