小编flo*_*wer的帖子

如何将我的方法更改为通用方法?

现在我编写一种从密钥中获取JSONObject数据的常用方法.如何将其更改为泛型方法?现在每次调用方法时都必须更改类型.

String a= (String) ObdDeviceTool.getResultData(result, "a", String.class);
Double b= (Double) ObdDeviceTool.getResultData(result, "b", Double.class);
public static Object getJSONObjectData(JSONObject result,String key,Object type){ 
    if (result.containsKey(key)) { 
        if(type.equals(String.class))
            return  result.getString(key);
        if(type.equals(Double.class))
            return  result.getDouble(key);
        if(type.equals(Long.class))
            return  result.getLong(key);
        if(type.equals(Integer.class))
            return  result.getInt(key);
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

java generics

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

如何使用@RequestMapping在Spring MVC Controller中优化我的代码?

在我的控制器中,我的控制器方法名称等于requestmapping url.例如,/list等于方法名称list.是否有一个通用的处理程序方法来缩短我的代码?我不想以这种方式编写每个控制器和方法.我记得.net mvc有一个简单的方法来配置它.关于Spring MVC怎么样?

@Controller
@RequestMapping(value = "/fooController ")
public class FooController {
     @RequestMapping("/list") public String list(...) { ... }
     @RequestMapping("/save") public String save(...) { ... }
     @RequestMapping("/delete") public String delete(...) { ... }
}

@Controller
@RequestMapping(value = "/basketballController ")
public class BasketballController {
     @RequestMapping("/list") public String list(...) { ... }
     @RequestMapping("/save") public String save(...) { ... }
     @RequestMapping("/delete") public String delete(...) { ... }
}
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc spring-boot

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

当我想在oracle中搜索min和max结果时哪种方法更好?

我有一个名为student的表,我想获得最大和最小分数,所以我以第一种方式编写sql:

select max(score),min(score) from student;
Run Code Online (Sandbox Code Playgroud)

第二种方式:

select max(score) from student;
select min(score) from student;
Run Code Online (Sandbox Code Playgroud)

我从互联网上搜索,他们说第二种方式更好,因为oracle不能同时扫描索引.但第二种方式无法确保相同的数据,因为它会进行两次搜索.如何解决?

oracle oracle10g oracle11g

5
推荐指数
1
解决办法
112
查看次数

当多个线程尝试在 JAVA 中使用 NIO 附加内容时,是否需要锁定文件?

首先我创建了一个空文件,然后我调用了一些线程来搜索数据库并获取结果内容,然后附加到文件中。结果内容为Stringtype,可能为20M。每个线程应该一次写入一个文件。我测试了很多次,我发现没有必要锁定。那正确吗?例子总共1000行,什么时候需要加写锁对文件进行操作?

    String currentName = "test.txt";
    final String LINE_SEPARATOR = System.getProperty("line.separator");
    ThreadPoolExecutor pool = new ThreadPoolExecutor(
            10, 100, 10, TimeUnit.SECONDS, new LinkedBlockingDeque<Runnable>());
    for (int i = 0; i < 500; i++) {
        pool.execute(() -> {
            try {
                appendFileByFilesWrite(currentName, "abc" +
                        ThreadLocalRandom.current().nextInt(1000) + LINE_SEPARATOR);
            } catch (IOException e) {
                e.printStackTrace();
            }
        });
    }

    IntStream.range(0, 500).<Runnable>mapToObj(a -> () -> {
        try {
            appendFileByFilesWrite( currentName,
                    "def" + ThreadLocalRandom.current().nextInt(1000) +
                    LINE_SEPARATOR);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }).forEach(pool::execute);

    pool.shutdown(); 
Run Code Online (Sandbox Code Playgroud)

这是方法:

public static …
Run Code Online (Sandbox Code Playgroud)

java multithreading java.util.concurrent java-8 threadpoolexecutor

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

为什么 Java 中的单例模式中 x 和 y 输出不同的值?

在下面的代码中,为什么x和y分别输出0和1?为什么当我把这段代码\xef\xbc\x9aprivate static Singleton instance = new Singleton();从位置\xe2\x91\xa0放到位置\xe2\x91\xa1时,输出是1, 1?

\n
   private static Singleton instance = new Singleton();\n//\xe2\x91\xa0\nprivate static int x = 0;\n\nprivate static   int y;\n//\xe2\x91\xa1\nprivate Singleton()\n{\n    System.out.println("Starting add");\n    x++;\n    y++;\n}\n\npublic static Singleton getInstance()\n{\n    return instance;\n}\n\npublic static void main(String[] args)\n{\n    System.out.println("Starting Singleton");\n    Singleton singleton = Singleton.getInstance();\n    //Singleton singleton = new Singleton();\n    System.out.println(singleton.x);\n    System.out.println(singleton.y);\n}\n
Run Code Online (Sandbox Code Playgroud)\n

java singleton java-8

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