问题列表 - 第37709页

Java通用类型变量

我的问题是关于泛型类和方法中使用的类型变量.

为什么我们不能做这样的事情T = new T();,换句话说,为什么我们不能构造一个类型变量的对象?

我知道在编译期间会删除通用信息,并且所有内容都会转换为
Object,那么编译器为什么不认为这T是一个对象并让我们构造它呢?

java generics

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

得到一个int?来自db使用DbDataReader

是否有任何聪明的方法来缩短这种淫秽行为?它有效,但它不可读......

int? myVal = r.IsDBNull(r.GetOrdinal("colName")) ? (int?)null : r.GetInt32(r.GetOrdinal("colName"));
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

.net c#

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

jQuery选择框替换

我正在寻找jQuery选择盒更换的建议.我以前在BrainFault上使用过那个(http://www.brainfault.com/jquery-plugins/jquery-selectbox-replacement/).

但是,从使用它和对它的一些研究,它是非常错误的,并不建议自己使用它.

任何建议赞赏!

jquery select selection

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

只需一步即可使用分隔符连接String list元素

是否有像join这样的函数将List的数据作为所有元素的字符串返回,由提供的分隔符连接?

 List<String> join; ....
 String join = list.join('+");
 // join == "Elem 1+Elem 2";
Run Code Online (Sandbox Code Playgroud)

或者必须使用迭代器手动粘贴元素?

java

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

从outofmemory异常中防止ConcurrentLinkedQueue <T>

使用ConcurrentLinkedQueue时,如何限制队列的大小.是否有可能通过外部存储异常?

java queue out-of-memory

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

如何在类加载时运行我的代码?

有没有一种可行的方法来在Java中加载任何类时运行我自己的代码,而不强制用户显式地并用自定义类加载器手动加载所有类?

无需过多细节,每当实现某个接口的类读取其注释将其与另一个类链接,并将该对赋予第三个类时.

编辑:哎呀,我会详细说明:我正在做一个事件处理库.我正在做的是让客户端代码执行他们自己的侦听器/事件对,这需要作为一对在我的库中注册.(嗯,毕竟不是那么久).

进一步编辑:目前客户端代码需要手动注册这对类/接口,这非常有效.我的意图是将其自动化,我认为将两个类与注释联系起来会有所帮助.接下来,我想摆脱需要始终保持注册列表最新的客户端代码.

PS:静态块不会,因为我的接口被捆绑到一个库中,客户端代码将创建更多的接口.因此,抽象类也不会这样做,因为它必须是一个接口.

java classloader

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

想知道我是否应该在python中使用属性保释

我一直在尝试在我的应用中使用属性而不是特定的setter和getter.它们似乎更加pythonic,通常使我的代码更具可读性.

除一个问题外更具可读性:错别字.

考虑以下简单示例(注意,我的属性实际上做了一些处理,即使这里的示例只是设置或返回一个简单的变量)

class GotNoClass(object):

    def __init__(self):
        object.__init__(self)
        self.__a = None

    def __set_a(self, a):
        self.__a = a

    def __get_a(self):
        return self.__a

    paramName = property(__get_a, __set_a)


if __name__ == "__main__":
    classy = GotNoClass()

    classy.paramName = 100
    print classy.paramName

    classy.paranName = 200
    print classy.paramName

    #oops! Typo above! as seen by this line:
    print classy.paranName
Run Code Online (Sandbox Code Playgroud)

任何仔细阅读的人都会看到输出结果是:

100
100
200
Run Code Online (Sandbox Code Playgroud)

哎呀.不应该是因为我做了一个错字 - 我写了paranName(两个n)而不是paramName.

在这个简单的例子中,这很容易调试,但在我的大项目中它一直在伤害我.因为当我意外地使用属性时,python愉快地创建了一个新变量,所以我的代码中出现了细微的错误.我发现有时难以追查的错误.更糟糕的是,我曾经两次使用相同的拼写错误(一次是我设置的,后来一次就像我一样)所以我的代码似乎工作但很久以后,当一个不同的代码分支最终试图访问这个属性(正确)我得到了错误的价值 - 但我花了好几天才意识到我的结果有点偏差.

现在我知道这是一个问题,我花了更多的时间仔细阅读我的代码,但理想情况下我会有办法自动捕捉这种情况 - 如果我只想念一个我可以引入一个错误,直到相当一段时间过去了......

所以我想知道,我应该转而选择使用优质的老牌手机和吸气剂吗?还是有一些巧妙的方法来避免这种情况?人们只是依靠自己手动捕获这些错误吗?唉,我不是一个专业的程序员,只是有人试图在工作中完成一些工作,我真的不知道解决这个问题的最佳方法.

谢谢.

PS我明白这也是Python的好处之一,我并不抱怨.只是想知道我是否会更好地使用显式设置器和getter.

python getter setter properties

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

调用基类的析构函数而不破坏基类!

#include<iostream>
using namespace std;

class A
{
public:
        int i;
        A() {cout<<"A()"<<endl;}
        ~A() {cout<<"~A()"<<endl;}
};
class B:public A
{
public:
        int j;
        B(): j(10)
        {
                this->i=20;
                this->~A();
        }
};

int main()
{
        B abc;
        cout<<"i="<<abc.i<<" j="<<abc.j<<endl;
}//main
Run Code Online (Sandbox Code Playgroud)

两个问题:

  1. 为什么A的析构函数被调用为普通函数而不是破坏对象?(或者只是在子类的析构函数调用基类的析构函数时才会销毁基类的某种规则?)我正在尝试这个示例代码来找出析构函数是如何工作的.因此,如果简单地调用析构函数不会破坏对象,那么显然有一些其他类型的调用会调用析构函数,然后才会破坏对象.那种电话有什么特别之处,有什么电话呢?
  2. 有没有办法在B的构造函数中为A创建一个初始化列表?像这样的东西:

    class B:public A
    { 
        B(): j(10), A():i(20) {}
    };
    
    Run Code Online (Sandbox Code Playgroud)

c++ inheritance destructor ctor-initializer

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

为什么使用lambda进行列表初始化会导致高的圈复杂度?

使用lambdas初始化列表会导致高IL圈复杂度:为什么以及如何消除这种复杂性?例如,下面的代码导致类的静态构造函数(实际上是编译器生成的)非常复杂:1 +列表计数.

static List<Predicate<string>> list = new List<Predicate<string>>()
{
    s => s == null,
    s=> s.StartsWith(“R”),
    ... With a lot of predicates like that ….
};
Run Code Online (Sandbox Code Playgroud)

注意:复杂度用计算 NDepend

c# lambda ndepend cyclomatic-complexity

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

如何在Yii框架中使用复杂查询制作标准?

我有这样的查询:

SELECT * FROM activity
WHERE (((userId = 1 OR userId IN(SELECT userId FROM follower WHERE followerId = 1))
AND activityType IN(1, 2, 3))
OR (targetId = 24 AND aType IN(1, 2, 3, 4, 5)))
ORDER BY id DESC;
Run Code Online (Sandbox Code Playgroud)

我尝试使用model()->findAllBySql($sql)它,它的工作原理.但我想使用它CDbCriteria,如果你有其他解决方案让我知道它:D

php yii

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