小编vir*_*tor的帖子

编程首选项 - 使用具有多个return语句的else ifs?

代码:

public String getTemperatureMessage(double temp)
{
    if(temp < 32)
        return "Freezing";
    else if(temp < 60)
        return "Brr";
    else if(temp < 80)
        return "Comfortable";
    else
        return "Too hot";
}
Run Code Online (Sandbox Code Playgroud)

关于上面的代码片段,else ifs在技术上是多余的,并且根本不会改变行为.但是,我倾向于把它们放在那里强调条件是排他性的.你的想法是什么?不必要或更清楚?

java language-agnostic preferences

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

如何从原始数据创建BufferedImage

我正在尝试从原始样本中获取BufferedImage,但是我尝试读取超出可用数据范围的例外情况,我只是不明白.我想要做的是:

val datasize = image.width * image.height
val imgbytes = image.data.getIntArray(0, datasize)
val datamodel = new SinglePixelPackedSampleModel(DataBuffer.TYPE_INT, image.width, image.height, Array(image.red_mask.intValue, image.green_mask.intValue, image.blue_mask.intValue))
val buffer = datamodel.createDataBuffer
val raster = Raster.createRaster(datamodel, buffer, new Point(0,0))
datamodel.setPixels(0, 0, image.width, image.height, imgbytes, buffer)
val newimage = new BufferedImage(image.width, image.height, BufferedImage.TYPE_INT_RGB)
newimage.setData(raster)
Run Code Online (Sandbox Code Playgroud)

不幸的是我得到:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 32784
    at java.awt.image.SinglePixelPackedSampleModel.setPixels(SinglePixelPackedSampleModel.java:689)
    at screenplayer.Main$.ximage_to_swt(Main.scala:40)
    at screenplayer.Main$.main(Main.scala:31)
    at screenplayer.Main.main(Main.scala)
Run Code Online (Sandbox Code Playgroud)

数据是标准RGB,带有1字节填充(因此1个像素== 4个字节),图像大小为1366x24像素.


我终于得到了运行以下建议的代码.最终的代码是:

val datasize = image.width * image.height
val imgbytes = image.data.getIntArray(0, datasize)

val raster = Raster.createPackedRaster(DataBuffer.TYPE_INT, …
Run Code Online (Sandbox Code Playgroud)

java bufferedimage scala awt

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

axis-wsdl4j和wsdl4j之间的差异

以下库有什么区别?

<dependency org="axis" name="axis-wsdl4j" rev="1.5.1"/>
<dependency org="wsdl4j" name="wsdl4j" rev="1.5.1"/>
Run Code Online (Sandbox Code Playgroud)

我简要地比较了下载的类二进制文件,它们看起来一样.但为什么多个名字?

java wsdl4j

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

如何使用静态文件正确包装烧瓶应用程序

我正在尝试为webapp创建一个python包(基于flask),我想在已知目录中安装一些文件.

例如,在运行集成服务器时,flask会尝试查找当前包中的templatesstatic目录(基于粘贴).但是在制作中我更喜欢那些安装在更具体的地方的目录virtualenv/share/package-name/{static,templates}.否则他们会在某个lib/python-2.x/...不合适的地方.

我尝试使用data_files参数in 安装文件setup.py,但这似乎对整个树(error: can't copy 'xxx': doesn't exist or not a regular file)没有用.

在这种情况下,什么是正确的解决方案?

python packaging flask

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

jquery中toArray和makeArray之间的区别

我正在尝试将DOM元素转换为对象的集合.但我不知道toArray()和makeArray()之间的主要区别是什么

HTML

<div id="firstdiv">
   <div>foo1</div>
   <div>foo2</div>
   <div>foo3</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我使用以下代码将节点转换为数组:

JQUERY

console.log($("#firstdiv > div").toArray());
console.log($.makeArray($("#firstdiv").html()));
Run Code Online (Sandbox Code Playgroud)

我不太明白他们之间的区别,我已经搜索过这个问题,但没有找到任何明确的解释.

提前致谢.

html javascript jquery dom

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

使用更多修饰符重新键入键盘

我正在寻找一种方法来为键盘添加一个"布局".我已经在使用一个使用altgr作为本地字母的布局.我想添加的是一个镜像右手侧键盘,它通过大写锁定激活(http://xkcd.com/mirrorboard.xkb中描述了一个)

不幸的ISO_LEVEL3_SHIFT是,当地字母表已经采用了.(AFAIK)如果我mode_shift用来改变组,我不能再在组中使用超过2个级别了.有没有办法为altgr和mode_shift?创建不同的组?

linux keyboard keyboard-layout

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

Automake和标准共享库

如何强制automake创建标准的共享库,而不是libtoolized库?通常,我创建的abc.so是以完整路径引用并加载到主程序中.有没有办法强制AM做同样的事情?如果我将其列为_LIBRARY,则automake会抱怨:'abc.so' is not a standard library name; did you mean 'libabc.a'

只是为了澄清:是的,我只需要.so支持 - 没有静态.是的,我想要一个自定义文件名.

automake shared-libraries

7
推荐指数
2
解决办法
3812
查看次数

为什么我的Perl TCP服务器脚本会挂起许多TCP连接?

我接受TCP连接的服务器有一个奇怪的问题.即使通常有一些进程在等待,但在某些连接数量下它会挂起.

长版:

服务器是用Perl编写的,并$srv使用重用标志绑定套接字并监听== 5.然后,它将循环分配到10个进程中.$clt=$srv->accept(); do_processing($clt); $clt->shutdown(2);

用C语言编写的客户端也很简单 - 它发送一些行,然后接收所有可用的行,并且执行shutdown(sockfd, 2);没有任何异步,最后发送和接收队列都是空的(如报告所示netstat).

连接仅持续约20ms.所有客户端的行为方式相同,实现方式相同,等等.现在假设我接受X来自客户端1的连接和X来自客户端2的连接.进程仍然报告它们一直处于空闲状态.如果我X从客户端3 添加另一个连接,突然服务器进程在接受后立即开始挂起.他们之后做的第一个阻塞accept();while (<$clt>) ...- 但他们没有获得任何数据(在第一次尝试时已经).突然间,所有10个进程都处于此状态,并且不会停止等待.在strace,服务器进程似乎挂起read(),这是有道理的.

TIME_WAIT属于该服务器的状态中存在大量连接(问题开始显示时为~100),但这可能是一个红色的鲱鱼.

这可能发生什么?


经过一些更多的分析:结果发现客户端有问题,在尝试下一个连接之前没有正确关闭先前的连接.负载平衡列表开头的服务器是旧的连接.

c sockets linux perl tcp

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

在Windows 7上更改XAMPP中的php写入权限

我正在尝试在XAMPP中安装基于文件的博客引擎,但所有这些项目都需要更改写入权限.我假设他们不是在谈论可以通过"属性"访问的Windows设置.知道在哪里/如何改变这个?似乎是一个简单的问题,但我很短暂.谢谢.

php xampp permissions

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

为什么签名在分配后会发生变化

ghci我身边玩耍时得到以下表达式:unlines . map (\(a,b) -> show a ++ " " ++ show b)

现在,当我检查它时,:t我得到:

> :t  unlines . map (\(a,b) -> show a ++ " " ++ show b)
unlines . map (\(a,b) -> show a ++ " " ++ show b)
  :: (Show a, Show a1) => [(a, a1)] -> String
Run Code Online (Sandbox Code Playgroud)

完全如预期的那样.但现在,如果我尝试将其分配给某个名称,我会获得比原始名称更具体的签名:

> let f = unlines . map (\(a,b) -> show a ++ " " ++ show b)
> :t f
f :: …
Run Code Online (Sandbox Code Playgroud)

haskell ghci

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