小编Sau*_*uer的帖子

Java最终抽象类

我有一个非常简单的问题:

我想要一个Java类,它提供了一个公共静态方法,它可以做一些事情.这仅用于封装目的(在一个单独的类中包含所有内容)...

这个类既不应该被实例化,也不应该被扩展.这让我写道:

final abstract class MyClass {
   static void myMethod() {
      ...
   }
   ... // More private methods and fields...
}
Run Code Online (Sandbox Code Playgroud)

(虽然我知道,这是禁止的).

我也知道,我可以使这个类完全是final,并覆盖标准构造函数,同时将其设为私有.

但在我看来,这更像是一种"解决方法",并且应该更有可能通过最终的抽象类来完成......

而且我讨厌变通方法.所以只是为了我自己的兴趣:还有另一种更好的方法吗?

java final class abstract

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

如何使用Java Generics避免未经检查的强制转换警告

不知怎的,我的旧问题已经关闭,所以我开了一个新问题:

我正在使用Java Generics从SQL查询中实现通用双向哈希映射.它应该能够来回映射String,Integer对的任意组合.它应该像这样使用:

String sql = "SELECT string_val, int_val FROM map_table";
PickMap<String, Integer> pm1 = new PickMap<String, Integer>(sql);

String key1 = "seven";
Integer value1 = pm1.getLeft2Right(key1);

Integer key2 = 7;
String value2 = pm1.getRightToLeft(key2);
Run Code Online (Sandbox Code Playgroud)

当然应该可以创建一个pm(整数,整数)等等......

我对Pick Map的实现看起来像这样(没有getter ...):

public class PickMap<L, R> {

    private final HashMap<L, R> left2Right = new HashMap<L, R>();
    private final HashMap<R, L> right2Left = new HashMap<R, L>();

    public PickMap(String sql) throws OException {
        DTable d = new DTable(sql);
        int colTypeL = d.t.getColType(1);
        int colTypeR = d.t.getColType(2); …
Run Code Online (Sandbox Code Playgroud)

java generics casting unchecked

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

在dos中为dir命令设置Recursive-Depth

我目前正在使用以下命令列出一些目录:

dir /b /s /AD > c:\temp\dir_list.txt
Run Code Online (Sandbox Code Playgroud)

这给了我几乎所需的清单.但这是太多的数据,因为一些文件夹有很多子文件夹,我不希望在我的列表中看到.

是否有可能将命令的递归深度限制为-lets-3?

c:\dir_1\dir_2\dir_3\dir_foo
Run Code Online (Sandbox Code Playgroud)

所以,如果我在上面的例子在C执行命令:"我不希望看到的dir_foo目录,但只是dir_n的...

也许没有批处理/ vb脚本?

windows directory recursion cmd directory-structure

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

SQL(Oracle)选择没有包含静态数据的实际表

我正在寻找在不查询实际表的情况下运行(Oracle)SQL的可能性.在这里,我找到了DUAL表的提示.多数民众赞成.但我正在寻找一个简短的解决方案来从"无处"中选择MULTIPLE行.那可能吗?这是我能想到的最短的查询,它可以满足我的需求:

Select 1, 'foo' FROM DUAL union 
Select 2, 'bar' FROM DUAL union  
Select 3, 'more stuff' FROM DUAL
Run Code Online (Sandbox Code Playgroud)

但是如果我想在我的结果中有更多的行,那就太不方便了.有更短的方式吗?就像是

Select 1, 'foo'; 2, 'bar'; 3, 'more stuff' from dual 
or 
Select * from (1, 'foo') union (2, 'bar') union (3, 'more stuff') 
Run Code Online (Sandbox Code Playgroud)

我知道,这不起作用,但你有什么想法吗?是否有一种简单的方法来转置查询的结果?就像是:

Select transposed (1, 'foo', 2, 'bar', 3, 'more stuff') from dual 
Run Code Online (Sandbox Code Playgroud)

我希望将"开销字符"的数量保持在最低点.

sql oracle dual-table

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