标签: instance

这个Java单例可以在WebSphere 6中重复重建吗?

我正在尝试追踪我们系统中的问题,以下代码让我担心.主servlet中的doPost()方法发生以下情况(名称已更改以保护有罪):

...
if(Single.getInstance().firstTime()){
   doPreperations();
}
normalResponse();
...
Run Code Online (Sandbox Code Playgroud)

单身'单身'看起来像这样:

private static Single theInstance = new Single();

private Single() {
...load properties...
}

public static Single getInstance() {
    return theInstance;
}
Run Code Online (Sandbox Code Playgroud)

通过这种方式设置为使用静态初始化程序而不是在getInstance()方法中检查null theInstance,是否可以一次又一次地重建?

PS - 我们正在使用Java 1.4上的App运行WebSphere 6

java singleton instance

13
推荐指数
5
解决办法
5064
查看次数

曾经需要破坏单例实例吗?

通过使用单例,只能创建一个实例.我们是否需要销毁该实例?

我有一个单独的DBManager,它管理JDBC连接和查询操作.通过调用它的静态newInstance方法,我可以得到它的实例,然后我做一些查询.最后,我想关闭数据库连接,然后调用另一个静态方法来关闭JDBC连接.

现在连接已关闭,而DBManager的实例仍处于活动状态但没有用处.我需要通过例如将其分配给null来销毁它吗?否则稍后可能会被错误引用.

如果我将该实例分配为null,然后再次调用newInstance方法,我将获得另一个新的不同实例吗?

java singleton instance destroy

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

如何使用实例组织Haskell模块:坚持数据类型与类型类?

一般的问题是在为现有对象添加实例时哪个模块结构更方便?有哪些优点和缺点?

假设我想为Seq类型添加NFData实例.我可以把它放在:

  • Data.Sequence.Extra(在vty包中做同样的事情)
  • Data.Sequence.Instances.NFData (更确切)
  • Control.DeepSeq.Instances
  • Control.DeepSeq.Instances.Sequence

当我既没有类型类也没有数据类型时就是这种情况.另一种常见的情况是,我拥有一个类型类型,并希望从Hackage的一些"重"包中添加数据类型的实例,比如OpenGL.假设我设计的类型类很轻,与OpenGL没有直接关系.我不希望我的类型类依赖于"重"包,所以我想将OpenGL实例放在一个单独的模块中(这是我的直觉,如果你有其他意见,我们来讨论它).那么,这个模块应该是什么:

  • MyClass.Instances.OpenGL
  • Graphics.Rendering.OpenGL.Extra (连同其他课程的实例)
  • Graphics.Rendering.OpenGL.Instances.MyClass

什么是更灵活的解决方案?在某些时候,OpenGL可以替换为其他库,或者也可以替换MyClass.有微妙的细微差别吗?

此外,如果选择MyClass.Instances变体,哪个方案更好:

  • MyClass.Class类本身的模块和基本实例和MyClass模块重新导出它(也许MyClass.Instances)
  • MyClass类和基本实例的模块,并重新MyClass.All导出所有内容
  • MyClass 类和基本实例的模块,没有用于重新导出的模块.

haskell module instance hierarchy typeclass

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

Java:super.clone()方法和继承

我有一个关于clone()Java中的方法的快速问题,用于super.clone()继承 - 我clone()从父按钮中一直调用父类中的方法.

clone()方法应该返回该对象的副本,但是如果我在继承heirachy中有三个类并且调用super.clone()三次,为什么继承heirachy中的最高类(仅在类Object下)得到该类的副本回?

假设我们有三个类:A,B和C,其中A - > B - > C(inherit = - >)

然后super.clone()在C类中调用,调用clone()B调用super.clone(),clone()在A中调用,调用super.clone()'this this Object.clone()被调用'.为什么它不是this从A类返回的对象的副本Object.clone()?这听起来很合乎逻辑.

java inheritance clone object instance

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

clojure实例?单一论点

我对clojure instance?函数有点困惑.采取一个论点似乎很高兴.所以

(instance? String) 
Run Code Online (Sandbox Code Playgroud)

工作正常,但总是返回false.

我在这里错过了什么吗?我在两天内完成了两次,两次都花了很长时间才进行调试(是的,我同意,犯错一次可能会被视为不幸,但两次看起来像粗心大意).

为什么不打破,有一个arity错误?

注释后来添加:从Clojure 1.6开始,这已得到修复!

http://dev.clojure.org/jira/browse/CLJ-1171

clojure instance

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

尝试在内部连接到Oracle,获取空闲实例?

所以我有一个Oracle实例,我知道它正在这个系统上运行,我已经拜访了oracle用户,我正在尝试使用"/ as sysdba"进行连接.但是,当我连接时,它说实例是空闲的.我知道数据库已启动并打开,因为我的应用程序正在与它通信.我的路径(ORACLE_HOME等)可能不正确:任何不正确的设置可能会导致这种情况?

% sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on Mon Dec 8 09:23:22 2008

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

Connected to an idle instance.

09:23:22 SQL> Disconnected

% ps -ef | grep smon
 oracle  6961     1   0   Nov 05 ?           1:24 ora_smon_ORA003
%
Run Code Online (Sandbox Code Playgroud)

oracle instance idle-processing

12
推荐指数
2
解决办法
9万
查看次数

如何拦截实例方法调用?

我正在寻找一种方法来拦截MyWrapper下面的类中的实例方法调用:

class SomeClass1:
    def a1(self):
        self.internal_z()
        return "a1"
    def a2(self):
        return "a2"
    def internal_z(self):
        return "z"

class SomeClass2(SomeClass1):
    pass

class MyWrapper(SomeClass2):

    # def INTERCEPT_ALL_FUNCTION_CALLS():
    #      result = Call_Original_Function()
    #      self.str += result  
    #      return result  


    def __init__(self):
        self.str = ''
    def getFinalResult(self):
        return self.str

x = MyWrapper()
x.a1()
x.a2()
Run Code Online (Sandbox Code Playgroud)

我想通过我的包装类拦截所有函数调用.在我的包装器类中,我想跟踪所有结果字符串.

result = x.getFinalResult()
print result == 'a1a2'
Run Code Online (Sandbox Code Playgroud)

python function call instance getattr

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

C++中用于定义异常类和抛出异常的标准方法

我想构建一个具有函数的类,这些函数可能会抛出我想要在使用它时捕获的异常.我从标准异常类继承my_exception.我实现了what()函数,以便它返回一个存储在私有字符串变量中的字符串

我认为最好将异常定义为嵌套类,就像在iosream库中使用ios_base :: failure一样.

我不太确定的是,我应该在哪里以及如何定义my_excpetion的对象.我希望我能看到iostream功能的内部代码,看看他们是如何做到的.我考虑了几个选项:

  1. 对于异常的每个原因,我可以定义my_exception的静态实例,使用构造函数获取字符串并将其保存到我的私有字符串指针.

  2. 对于异常的每个原因,我可以定义另一个继承自my_exception的类,并实现作为返回常量字符串的函数(原因).我可以保存每个异常子类的实例,或抛出类型.顺便说一句,我们什么时候通常抛出类型而不是实例?

  3. 我想这是错的:每次我想抛出一个异常,用一个获取字符串的构造函数创建一个新的my_exception.这是用Java完成的,但据我所知,它在C++中会有问题,因为异常应该在某处删除.对?

我认为第一个是正确的,是吗?有更多标准选项吗?

非常感谢你!

c++ standards exception instance throw

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

在实例方法中更新类变量

class MyClass:
    var1 = 1

    def update(value):
        MyClass.var1 += value

    def __init__(self,value):
        self.value = value
        MyClass.update(value)

a = MyClass(1)
Run Code Online (Sandbox Code Playgroud)

我正在尝试更新方法(_ init _)中的类变量(var1),但我给了我:

TypeError: unbound method update() must be called with MyClass instance as first argument (got int instance instead)
Run Code Online (Sandbox Code Playgroud)

我这样做是因为我希望通过调用print MyClass.var1轻松访问类中的所有变量

python methods class instance

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

我可以更改Python绑定方法对象的__str __()属性吗?

我想改变__str__()我的一个类的方法的属性.

(注意:不要与"试图改变方法__str__()" 混淆.)

我有一个类MyClass,它有一个方法'some_method'.我可以改变MyClass显示方式:

class MyClass():
    def __init__(self): pass
    def some_method(self): pass
    def __str__(self): return "I'm an instance of MyClass!"
Run Code Online (Sandbox Code Playgroud)

当我实例化并打印MyClass时:

print(my_class)
Run Code Online (Sandbox Code Playgroud)

我明白了:

I'm an instance of MyClass!

当我

print(my_class.some_method)
Run Code Online (Sandbox Code Playgroud)

我明白了:

<bound method my_class.some_method of <gumble margle object at mumble-jumble>>

我想改为:

some_method in the instance my_class you Dope!

我已经尝试重写str方法some_method:

def some_method(self):
    def __str__(self):
        return "You dope!"
Run Code Online (Sandbox Code Playgroud)

但没有爱.

试图在IPython中暴力破解它并没有改善:

my_class.some_method.__str__ = lambda: "You Dope!"
Run Code Online (Sandbox Code Playgroud)

AttributeError: 'method' object attribute '__str__' is …

python overriding instance python-3.x

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