小编mae*_*tro的帖子

等价方法超载为什么有必要?

我浏览了Google制作的一些JAVA代码,我找到了ImmutableSet:http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/collect/ImmutableSet.html

他们用其他几种方法实现了of()方法:

public static <E> ImmutableSet<E> of(E e1, E e2);
public static <E> ImmutableSet<E> of(E e1, E e2, E e3);
public static <E> ImmutableSet<E> of(E e1, E e2, E e3, E e4);
public static <E> ImmutableSet<E> of(E e1, E e2, E e3, E e4, E e5);
public static <E> ImmutableSet<E> of(E... elements);
Run Code Online (Sandbox Code Playgroud)

我查看了此处的实施:https://code.google.com/p/google-collections/source/browse/trunk/src/com/google/common/collect/ImmutableSet.java

有一个创建方法,具有以下签名:

private static <E> ImmutableSet<E> create(E... elements)
Run Code Online (Sandbox Code Playgroud)

包裹了

private static <E> ImmutableSet<E> create(Iterable<? extends E> iterable, int count);
Run Code Online (Sandbox Code Playgroud)

方法.public方法只是将参数传递给create(E ... elements)signatured方法,该方法最终调用另一个create方法. …

java theory performance

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

Oracle SQL Developer客户端编码

我阅读了许多相关的stackoverflow主题,我花了一整天的时间来讨论以下问题,但我没有找到任何有用的东西,但问题似乎没有得到满足.

我有一个Oracle数据库.让我们看看以下PL/SQL脚本:

CREATE TABLE Dummy(
   id number(19,0),
   tclob clob,
   tnclob nclob,
   PRIMARY KEY (id));

INSERT INTO dummy (id, tclob, tnclob) VALUES (1, 'ñ$ߤ*>;''<’', 'ñ$ߤ*>;''<’');
SELECT tclob, tnclob FROM dummy;
Run Code Online (Sandbox Code Playgroud)

我的问题是''​​'和'''字符存储为问号.我还试图通过JAVA加载以前插入的值,但我得到问号而不是特殊字符.

我创建了一个小型JAVA方法,它使用OraclePreparedStatement来保存测试数据,我使用setNString()方法将nclob数据附加到查询中.在这种情况下,所有字符在JAVA和SqlDeveloper中都可以正常显示.

因此,一种可能的解决方案是使用JAVA将我的数据保存到数据库中.我有几千行SQL脚本插入数据,我不想在java中再次编写整个东西.

所以问题是:为什么sqldeveloper打破了特殊字符?

我的设置:

SELECT DECODE(parameter, 'NLS_CHARACTERSET', 'CHARACTER SET',
'NLS_LANGUAGE', 'LANGUAGE',
'NLS_TERRITORY', 'TERRITORY') name,
value from v$nls_parameters
WHERE parameter IN ( 'NLS_CHARACTERSET', 'NLS_LANGUAGE', 'NLS_TERRITORY')
Run Code Online (Sandbox Code Playgroud)

结果:

NAME          VALUE
------------- -------------
LANGUAGE      HUNGARIAN
TERRITORY     HUNGARY
CHARACTER SET EE8ISO8859P2
Run Code Online (Sandbox Code Playgroud)

我将SqlDeveloper/Preferences/Environment/Encoding更改为UTF-8.我还将HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1值更改为HUNGARIAN_HUNGARY.UTF8

更新:我尝试使用以下语法插入数据:

INSERT INTO dummy (id, tclob, tnclob) VALUES (1, N'ñ$ߤ*>;''<’', N'ñ$ߤ*>;''<’');
INSERT …
Run Code Online (Sandbox Code Playgroud)

oracle plsql character-encoding oracle-sqldeveloper

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

Kotlin `object` 初始化顺序导致意外的 null 实例

考虑以下代码:

sealed class DataType<T : Any> {
    abstract fun inputToType(input: String): T
    abstract fun typeToSql(value: T): String

    companion object {
        val all = listOf(StringDt, LongDt)
    }
}

object StringDt : DataType<String>() {
    override fun inputToType(input: String) = input
    override fun typeToSql(value: String) = "\"${value}\""
}

object LongDt : DataType<Long>() {
    override fun inputToType(input: String) = input.toLong()
    override fun typeToSql(value: Long) = value.toString()
}

val dataTypeList = listOfNotNull(StringDt, LongDt)

println(dataTypeList)
println(DataType.all)
Run Code Online (Sandbox Code Playgroud)

需要考虑的事项:

  • object根据文档(以及我的理解)是单例并且总是实例化
  • 这两个对象 (StringDtLongDt …

null jvm heap-memory intellij-idea kotlin

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