小编Cod*_*roc的帖子

Java中的泛型

是否存在定义和使用泛型定义的简写方法,而不必继续重复特定的通用描述,以便如果有更改,我不必更改所有定义/用法,尽管代码库可能是这样的:

Typedef myGenDef = < Object1, Object2 >;

HashMap< myGenDef > hm = new HashMap< myGenDef >();

for (Entry< myGenDef > ent : hm..entrySet())
{
.
.
.
}
Run Code Online (Sandbox Code Playgroud)

java generics

10
推荐指数
1
解决办法
2205
查看次数

为什么没有找到主方法时没有生成异常或错误?

好的只是为了清酒知识,我尝试了下面的案例(假设A类和B类在同一个包中)

ClassA的

public class ClassA {

  public static void main(String[] args) {
     System.out.println("A");
  }
}
Run Code Online (Sandbox Code Playgroud)

ClassB的

public class ClassB extends ClassA {

  public static void main(String[] args) {
    System.out.println("B");
  }
}
Run Code Online (Sandbox Code Playgroud)

ClassB它上面执行它将B在classB下面的变化之后产生现在的输出

ClassB的

public class ClassB extends ClassA {
   //blank body
}
Run Code Online (Sandbox Code Playgroud)

如果我编译并运行terminal它给我的输出A完全令人惊讶,因为它应该给出,NoSuchMethodError因为没有主要的方法是他们如此善意地解释奇怪的行为?

注意:许多答案包含Override单词请使用,hiding因为我们无法覆盖java中的静态方法.

java program-entry-point

9
推荐指数
1
解决办法
302
查看次数

请使用类名解释Java 8方法参考实例方法

public interface MyFunc<T> {

    boolean func(T v1, T v2);

}
Run Code Online (Sandbox Code Playgroud)
public class HighTemp {

    private int hTemp;

    HighTemp(){

    }
    public HighTemp(int ht) {
        this.hTemp = ht;
    }

    boolean sameTemp(HighTemp ht2){
         return hTemp == ht2.hTemp;
    }

     boolean lessThanTemp(HighTemp ht2){
        return hTemp < ht2.hTemp;
    }
}
Run Code Online (Sandbox Code Playgroud)
class InstMethWithObjRef {

    static <T> int counter(T[] vals, MyFunc<T> f, T v){
        int count = 0;

        for (int i = 0; i < vals.length; i++) {
            if(f.func(vals[i], v)) count++;
        }
        return count;
    }
    public static void …
Run Code Online (Sandbox Code Playgroud)

java java-8 functional-interface method-reference

8
推荐指数
1
解决办法
2932
查看次数

为什么从对象转换为无界通配符集时没有警告?

为什么以下代码没有警告?

public void some(Object a){
    Map<?, ?> map = **(Map<?,?>)a**;  //converting unknown object to map    
}
Run Code Online (Sandbox Code Playgroud)

我预计RHS会有一个未经检查的警告.

虽然此代码有警告:

public void some(Object a){
   Map<Object, Object> map = **(Map<Object,Object>)a**;
  //converting unknown object to Map<Object,Object>      
}
Run Code Online (Sandbox Code Playgroud)

此外,对于以下情况,没有警告:

String str = (String) request.getAttribute("asd") //returns Object
Run Code Online (Sandbox Code Playgroud)

这是否意味着仿制药带来了未经检查的警告?在Java中引入泛型之前没有这样的警告?

java generics

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

Jira OAuth - 无法创建应用程序链接

我正在尝试创建一个使用jira进行身份验证的应用程序.我正在使用Jira Rest api.在文档中,它说使用相同的公钥和消费者密钥来创建文档中给出的应用程序链接.这很好,我可以创建访问令牌.但在提到Java代码这个,我不知道应该怎样为PRIVATE_KEY给出.我尝试了两种方法 -

  1. 使用rsa生成一个随机私钥,并提供它代替不起作用的private_key.它给了例外length too long.我尝试了2048,1024,512,256和128位.一切都给出了同样的错误.

申请链接:

消费者关键:硬编码消费者

消费者名称:硬编码消费者

公钥:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxZDzGUGk6rElyPm0iOua0lWg84nOlhQN1gmTFTIu5WFyQFHZF6OA4HX7xATttQZ6N21yKMakuNdRvEudyN/coUqe89r3Ae + rkEIn4tCxGpJWX205xVF3Cgsn8ICj6dLUFQPiWXouoZ7HG0sPKhCLXXOvUXmekivtyx4bxVFD9Zy4SQ7IHTx0V0pZYGc6r1gF0LqRmGVQDaQSbivigH4mlVwoAO9Tfccf + V00hYuSvntU + B1ZygMw2rAFLezJmnftTxPuehqWu9xS5NVsPsWgBL7LOi3oY8lhzOYjbMKDWM6zUtpOmWJA52cVJW6zwxCxE28/592IARxlJcq14tjwYwIDAQAB

  1. 生成的私钥和公钥对分别在应用程序链接和代码中提供相同的.但在这种情况下,我无法创建访问令牌.它给 -

申请链接:

消费者关键:硬编码消费者

消费者名称:硬编码消费者

公钥:MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0YjCwIfYoprq/FQO6lb3asXrx LlJFuCvtinTF5p0GxvQGu5O3gYytUvtC2JlYzypSRjVxwxrsuRcP3e641SdASwfr mzyvIgP08N4S0IFzEURkV1wp/IpH7kH41EtbmUmrXSwfNZsnQRE5SYSOhh + LcK2w yQkdgcMv11l4KoBkcwIDAQAB

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.simontuffs.onejar.Boot.run(Boot.java:340)
    at com.simontuffs.onejar.Boot.main(Boot.java:166)
Caused by: java.lang.RuntimeException: Failed to obtain request token
    at com.atlassian.oauth.client.example.AtlassianOAuthClient.getRequestToken(AtlassianOAuthClient.java:66)
    at com.atlassian.oauth.client.example.JIRAOAuthClient.main(JIRAOAuthClient.java:52)
    ... 6 more
Caused by: net.oauth.OAuthProblemException: signature_invalid
    at net.oauth.client.OAuthResponseMessage.toOAuthProblemException(OAuthResponseMessage.java:83)
    at net.oauth.client.OAuthClient.invoke(OAuthClient.java:306)
    at net.oauth.client.OAuthClient.invoke(OAuthClient.java:260)
    at net.oauth.client.OAuthClient.getRequestTokenResponse(OAuthClient.java:190)
    at …
Run Code Online (Sandbox Code Playgroud)

java rsa oauth jira jira-rest-api

7
推荐指数
1
解决办法
497
查看次数

为什么PasswordField在Vaadin中使用String而不是char []?

字符串容易受到密码值的影响.我注意到Vaadin PasswordField操纵密码String.

以下是默认构造函数PasswordField,

public PasswordField() {
  setValue("");
}
Run Code Online (Sandbox Code Playgroud)

我的问题:

  • PasswordField在Vaadin 使用是否安全?
  • 什么内部API可以确保密码的安全性?

java vaadin vaadin7

7
推荐指数
1
解决办法
657
查看次数

Maven:找出是在32位还是64位JVM中运行

如何根据执行maven的VM是32位还是64位JVM来启用或禁用maven配置文件?

我试过这个:

<activation>
   <os>
       <arch>x86</arch>
   </os>
 </activation>
Run Code Online (Sandbox Code Playgroud)

或者amd64分别检测32/64位VM,但是在64位Windows上运行的32位VM上,这会激活64位配置文件.

java maven-2 jvm maven

6
推荐指数
1
解决办法
3759
查看次数

对象类中的静态列表

这是一个很好的java实践(就时间而言在内存和计算效率方面)来关联类本身中的静态对象列表.

package collection;

/**
 * Created by ANJANEY on 5/28/2014.
 */

import java.util.*;

    class Student1
    {

    int rollId;
    String name;

    static List<Student1> studentList=new ArrayList<Student1>();

    Student1(int rollId,String name)
    {
        this.rollId=rollId;
        this.name=name;
        studentList.add(this);
    }


    }

    public class A {

    public static void main(String aaaa[])
    {
        new Student1(1,"Anjaney");
        new Student1(2,"Prerak");

        Iterator<Student1> itr=Student1.studentList.iterator();

        while(itr.hasNext())
        {
            Student1 st=itr.next();
            System.out.println("Roll = "+st.rollId+" Name = "+st.name);
        }
    }

    }
Run Code Online (Sandbox Code Playgroud)

java

6
推荐指数
1
解决办法
881
查看次数

Calendar的奇怪行为

我正面临一种奇怪的行为java.util.Calendar.

问题是当我Calendar#getTime()在中间添加一个方法调用时,我得到的结果是正确的,但是当我直接得到Dates一周而没有调用Calendar#getTime()它时,它指的是下周而不是当前周.

请考虑以下代码段:

public class GetDatesOfWeek {

    public static void main(String[] args) {

        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");

        Calendar cal = Calendar.getInstance();
        cal.set(1991, Calendar.DECEMBER, 11);

        //System.out.println(cal.getTime());//LINE NO : 14

        for(int i = Calendar.SUNDAY; i <= Calendar.SATURDAY; i++) {
            cal.set(Calendar.DAY_OF_WEEK, i);
            Date date = cal.getTime();
            System.out.println(sdf.format(date));
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

当我取消注释该行时,14我得到以下输出:

Wed Dec 11 07:38:06 IST 1991
08-12-1991
09-12-1991
10-12-1991
11-12-1991
12-12-1991
13-12-1991
14-12-1991
Run Code Online (Sandbox Code Playgroud)

但是当我评论该行并执行代码时,我得到了输出.

15-12-1991 …
Run Code Online (Sandbox Code Playgroud)

java calendar date

6
推荐指数
1
解决办法
232
查看次数

阴影接口的默认方法

考虑以下情况,

interface IFace1 {
    default void printHello() {
        System.out.println("IFace1");
    }
}

interface IFace2 {
    void printHello();
} 

public class Test implements IFace1, IFace2 {

    public static void main(String[] args) {
        Test test = new Test();
        test.printHello();

        IFace1 iface1 = new Test();
        iface1.printHello();

        IFace2 iface2 = new Test();
        iface2.printHello();
    }

    @Override
    public void printHello() {
        System.out.println("Test");
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我得到了非常期待的输出.

Test
Test
Test
Run Code Online (Sandbox Code Playgroud)

我一直在阅读有关Java-8默认方法的内容,特别是有关扩展包含默认方法的接口的内容

2 nd bullet:重新声明默认方法,使其成为抽象方法.

在上面的例子中,我有这有相同名称的默认方法两个接口,当我实现了这两个我才能够达到执行printHelloTest是指IFace2.

我对此几乎没有疑问, …

java java-8 default-method

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