小编And*_*nek的帖子

ValueError:数学域错误

我只是用Python测试工程中的数值方法的一个例子.

from numpy import zeros, array
from math import sin, log
from newtonRaphson2 import *

def f(x):
    f = zeros(len(x))
    f[0] = sin(x[0]) + x[1]**2 + log(x[2]) - 7.0
    f[1] = 3.0*x[0] + 2.0**x[1] - x[2]**3 + 1.0
    f[2] = x[0] + x[1] + x[2] -5.0
    return f

x = array([1.0, 1.0, 1.0])
print newtonRaphson2(f,x)
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它显示以下错误:

File "example NR2method.py", line 8, in f
    f[0] = sin(x[0]) + x[1]**2 + log(x[2]) - 7.0
ValueError: math domain error …
Run Code Online (Sandbox Code Playgroud)

python runtime-error logarithm

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

Class中getConstructors()的泛型类型

在泛型类中,Class<T>该方法getConstructors()具有返回类型,而不是泛型类型参数T.其原因在于javadoc中的解释.

请注意,虽然此方法返回一个Constructor<T>对象数组(即此类中的构造函数数组),但此方法的返回类型Constructor<?>[]并非Constructor<T>[]如预期的那样.这个信息量较少的返回类型是必需的,因为从此方法返回后,可以修改数组以保存不同类的Constructor对象,这将违反类型保证Constructor<T>[].

我的一位同事和我试图理解这个解释.在我们的理解中,他们基本上说它是未知的泛型类型,因为一些调用者可以将其他Constructor对象放入该数组中.我们做对了吗?如果是这样,为什么有人会这样设计API.使用特定类型并信任程序员正确使用数组不是更好吗?对我们来说,这听起来有点像"我们正在制作更糟糕的API,因为程序员使用它可能会尝试一些愚蠢的东西".我们的谬误在哪里?

java generics reflection

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

使用"new"关键字或静态方法声明和初始化bigdecimal数字是更好的方法吗?

我必须在项目中多次声明和初始化BigDecimal包装器对象.然后哪个更好的方法由Java代码:

BigDecimal num=new BigDecimal("123"); 
Run Code Online (Sandbox Code Playgroud)

或者在NumberUtils课堂上已经有一个静态方法可用

public static BigInteger createBigInteger(String str) {
    if (str == null) {
        return null;
    }
    return new BigInteger(str);
}

BigDecimal num=NumberUtils.createBigInteger("123"); 
Run Code Online (Sandbox Code Playgroud)

请告诉我,这是更好的方法,因为我们比较了性能(内存和速度).

java

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

在tr ///中使用char变量

我正在尝试计算字符串中的字符,并找到一个使用tr运算符计算单个字符的简单解决方案.现在我想用从a到z的每个角色来做这个.以下解决方案不起作用,因为tr///匹配每个字符.

my @chars = ('a' .. 'z');
foreach my $c (@chars)
{
    $count{$c} = ($text =~ tr/$c//);
}
Run Code Online (Sandbox Code Playgroud)

我如何正确使用char变量tr///

perl

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

Eclipse RCP颜色选择器

在Eclipse首选项中,每个语法突出显示首选项页面都有一个颜色选择器控件.它由一个彩色按钮组成

颜色选择按钮

打开一个对话框

颜色选择器对话框

我想在我的RCP应用程序中使用这些组件,但我找不到它们是什么或者它们是否可用.

我猜这个按钮可能是一个普通的按钮.这很容易建立自己.但我想避免自己构建整个对话框.

谁能告诉我在哪里可以找到这个组件?

PS:我已经看到了这个问题,但它没有提供"本机"Eclipse解决方案.

java swt jface eclipse-rcp

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

使用dateadd在CASE表达式中的奇怪行为

我在使用a的SQL语句中表达了一些奇怪的行为CASE.它可以通过以下示例重现:

SELECT
    CASE
    WHEN 1=1
        THEN 'foo'
    WHEN 1=2
        THEN (DATEADD(s, 1435586700, '01/01/1970 00:00:00'))
    WHEN 1=3
        THEN (DATEADD(s, 1435586700, '01/01/1970 00:00:00'))
    ELSE
        'bar'
    END AS result
Run Code Online (Sandbox Code Playgroud)

如果在SQL Server 2008上执行此操作,则不返回任何结果.只要您为第二个或第三个案例更改它成功,它就会返回一个值.如果您完全删除这些案例,它可以正常工作.

起初我认为DATEADD在任何情况下执行都是一个问题,并且由于传递的参数值而失败.但在我的例子中,它们是不变的,无论如何都应该有效.

这里发生了什么?

sql sql-server

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

获取Maven(M2e和m2e wtp)插件,以便在Eclipse Indigo 3.7.2中使用

我刚刚安装了eclipse 3.7.2并试图获得Maven插件.我使用了Help-> Install New Software并使用这个网站来处理:http: //download.eclipse.org/m2e-wtp/releases/juno/ 我等了4个项目出现,包括:

2)Eclipse的Maven Intgration

3)WTP的Maven Itegration

然后点击那些2(中间项目).令我懊恼的是,结果如下:

The operation cannot be completed.   See the details.
Details:
Cannot complete the install because one or more required items could not be found.
Software being installed: m2e - slf4j over logback logging (Optional) 1.4.0.20130601-0317 (org.eclipse.m2e.logback.feature.feature.group 1.4.0.20130601-0317)
Run Code Online (Sandbox Code Playgroud)

我看到有人在他们使用eclipse 3.6.2时看到了这个,并且他们在升级到3.7之后不再看到错误.
但是,我更喜欢使用3.7.2,因为它适用于我需要的其他插件.任何帮助将不胜感激.

eclipse maven m2e-wtp

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

Maven 多模块项目:Eclipse 中缺少模块

我使用描述多模块项目的原型在 Eclipse 中创建了一个新的 Maven 项目。它部分地作为例外工作并且我已经习惯了。在 Project Explorer 中,模块显示为顶层的项目,而不是父项目的子文件夹。在我的硬盘上,文件夹结构显示了父根项目文件夹下的模块。我现在习惯于在 Navigator 中看到相同的结构,但它显示的文件夹结构与 Project Explorer 相同。

为了让这更烦人,我使用Maven=>手动创建了另一个模块New Maven Module Project。该模块按预期运行。它在导航器中显示为父文件夹的子文件夹,我可以提交它。

将其可视化:

硬盘上的结构(在导航器中预期):

- parentProject
| - module1
| - module2
| - manuallyCreatedModule
Run Code Online (Sandbox Code Playgroud)

导航器和项目浏览器中的结构:

-parentProject
| - manuallyCreatedModule
- module1
- module2
- manuallyCreatedModule
Run Code Online (Sandbox Code Playgroud)

我已经将手动创建的模块和其他模块的 poms 和项目首选项与最后一个细节进行了比较,似乎无法找到这种不同行为的原因。poms 的相关部分似乎是相同的:

父pom:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>myId</groupId>
    <artifactId>parentProject</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <modules>
        <module>module1</module>
        <module>mdoule2</module>
        <module>manuallyCreatedModule</module>
    </modules>
</project>
Run Code Online (Sandbox Code Playgroud)

原型模块 pom:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion> …
Run Code Online (Sandbox Code Playgroud)

eclipse maven m2e

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

摆脱Java中的"for循环"

当事件发生时,我想从"for循环"中退出.例如,我的代码中有一部分:

for (ScanResult scanResult : listeScan) {
    if(sampleposition[position]==0){ 
        change=true;
        while(i < position && change==true){ 
            if(macAdress[i].equals(scanResult.BSSID)){ 
                change = false;
            }
            i++;
        }
        i=0;
        if(change == true && scanResult.level >= -80){ 
            valueSSID[position] = scanResult.level;
            macAdress[position] = scanResult.BSSID;
            sSID[position] = scanResult.SSID;
            if(valueSSID[position]!=0){sampleposition[position]++;}
          //exit here
        }
    }
    else{
        if(macAdress[position].equals(scanResult.BSSID) && sampleposition[position]<=totalsample){addlevel=scanResult.level;} else {addlevel=0;}
        valueSSID[position] = valueSSID[position] + addlevel;
            if(addlevel!=0){sampleposition[position]++;}
          //exit here

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

实际上,我想停止循环,其中有评论"退出这里".

拜托,你能告诉我怎么办?对不起我的英语不好...

java

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

永远不会运行静态块

我有一个如下所示的实用程序类:

public final class MyUtils {

     public static final List<String> MY_VALUES = new ArrayList<String>();

     {
         MY_VALUES.add("foo");
         MY_VALUES.add("bar");
     }
}
Run Code Online (Sandbox Code Playgroud)

我从另一个类中调用它,就像这样:

MyUtils.MY_VALUES
Run Code Online (Sandbox Code Playgroud)

如果我这样做,列表是空的,如果我调试,我看到静态块永远不会运行.

据我所知,静态类初始化何时发生?以及如何强制一个类初始化?a static field of the class is assigned我应该立即运行该块.我也尝试使变量非final来满足条件" a non-constant static field is used".

我可以使用一个init方法,因为在另外两个问题中也是如此.为什么我的静态代码块不执行?但我仍然想明白为什么它不起作用,尽管我似乎已经完成了语言规范的条件.

java static

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