问题列表 - 第26168页

Java声明断断续续吗?

在探讨问题时,我最近assert在Java中发现了关键字.起初,我很兴奋.我还不知道有用的东西!一种更有效的方法来检查输入参数的有效性!耶老师!

但后来我仔细研究了一下,我的热情并没有像一个简单的事实那样"完全被扼杀"而"温和":你可以关闭断言.*

这听起来像是一场噩梦.如果我断言我不希望代码继续输入,如果输入listOfStuffnull,为什么我想要忽略该断言?听起来好像我正在调试一段生产代码,并怀疑listOfStuff可能错误地传递了一个,null但没有看到任何触发该断言的日志文件证据,我不相信listOfStuff实际上已经发送了一个有效值; 我还必须考虑断言可能完全被关闭的可能性.

这假设我是调试代码的人.不熟悉断言的人可能会看到并且(非常合理地)假设如果断言消息没有出现在日志中,则不会出现listOfStuff问题.如果你的第一次遭遇assert是在野外,你甚至会发现它可以完全关闭吗?毕竟,它不像是一个允许你禁用try/catch块的命令行选项.

所有这些都让我想到了我的问题(这一个问题,而不是一个咆哮的借口!我保证!):

我错过了什么?

是否有一些细微差别使得Java的实现assert比我给它的功劳更有用?在某些情况下,从命令行启用/禁用它的能力实际上是非常有价值的吗?当我设想在生产代码中使用它代替语句时,我是否误解了它if (listOfStuff == null) barf();

我觉得这里有一些重要的东西,我没有得到.

*好的,从技术上讲,它们实际上是默认关闭的; 你必须不遗余力地打开它们.但是,你仍然可以完全击败他们.


编辑: 启蒙要求,启示收到.

assert首先是一个调试工具的概念需要很长的路要走,才能使它对我有意义.

我仍然认为应该在生产环境中禁用输入检查非平凡私有方法的概念,因为开发人员认为不可能输入错误.根据我的经验,成熟的生产代码是一种疯狂的,庞大的东西,多年来由具有不同技能的人们开发,其目标是快速变化的不同程度的理智要求.即使糟糕的输入确实是不可能的,从现在起六个月后的一段邋maintenance维护编码也可以改变这一点. 提供的链接gustafc(谢谢!)包括这个例子:

assert interval > 0 && interval <= 1000/MAX_REFRESH_RATE : interval;

禁用如此简单的生产检查让我感到愚蠢乐观.然而,这是编码哲学的差异,而不是破碎的特征.

另外,我绝对可以看到这样的价值:

assert reallyExpensiveSanityCheck(someObject) : someObject;

感谢所有花时间帮助我理解这个功能的人; 这是非常赞赏.

java language-features assert design-by-contract

25
推荐指数
4
解决办法
2657
查看次数

Cryptic C++"thing"(函数指针)

C++中的这种语法是什么?有人能指出我的技术术语,所以我可以看到我的文字中是否有任何内容?

起初我以为它是一个原型,然后把=(*fn)扔掉......

这是我的例子:

void (*fn) (int&,int&) = x;
Run Code Online (Sandbox Code Playgroud)

c++ pointers function

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

使用带参数的instance_eval调用proc?

我知道这有效:

proc = Proc.new do
  puts self.hi + ' world'
end

class Usa
  def hi
    "Hello!"
  end
end
Usa.new.instance_eval &proc
Run Code Online (Sandbox Code Playgroud)

但是我想将参数传递给proc,所以我试过这个不起作用:

proc = Proc.new do |greeting| 
  puts self.hi + greeting
end

class Usa
  def hi
    "Hello!"
  end
end
Usa.new.instance_eval &proc, 'world' # does not work
Usa.new.instance_eval &proc('world') # does not work
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我使它工作吗?

ruby

33
推荐指数
1
解决办法
8890
查看次数

Microsoft .NET 4.0完整框架和客户端配置文件之间的差异

Microsoft .NET Framework 4.0完整安装程序(32位和64位)为48.1 MB,客户端配置文件安装程序为41.0 MB.解压缩的安装文件分别为237 MB和194 MB,一旦安装,它们分别为537 MB和427 MB.

这是110 MB的差异.两个包之间有什么区别?

什么时候安装客户端配置文件而不是完整的.NET Framework?

.net .net-4.0 .net-client-profile

357
推荐指数
4
解决办法
21万
查看次数

如何在iPhone 3.1.3模拟器上运行通用应用程序?

我正在开发一款我希望在iPhone和iPad上普及的新应用.我开始使用"创建基于窗口的应用程序"向导,它在"iPhone"和"iPad"组中创建了单独的应用程序代理.由于我已经非常熟悉iPhone开发,我做了我项目的那部分,现在我已经准备好做一些iPad的东西了.

所以...我开始通过向我的iPad委托添加UISplitViewController,将Active SDK切换到3.2,它的工作原理!但是当我切换回3.1.3并尝试在模拟器中运行它时,Build and Go失败了.对于初学者,我看到:

... path .../iPad/AppDelegate_Pad.h:13:错误:'UISplitViewController'之前的预期说明符限定符列表

我的Base SDK设置为3.2,部署目标设置为3.1.3.我觉得这就够了.但我也在文档中找到了有条件地编译的方法:

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200
   MyIPadViewController* vc;
// Create the iPad view controller
#else
   MyIPhoneViewController* vc;
// Create the iPhone view controller
#endif
Run Code Online (Sandbox Code Playgroud)

所以我到处都需要这样做吗?这似乎是一个可怕的很多代码来添加(我会得到在短时间内摆脱了4.0反正),所以我觉得我必须做一些错误的.而且,我甚至不知道它如何适用于@property或@synthesize声明之类的东西.

tl;博士问题的版本 - 我错过了某个地方的设置吗?

iphone xcode build-process ipad

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

在构建依赖于它的程序后,如何更改共享库的文件名?

我有一个程序依赖于它希望在目录结构内部找到的共享库.我想将该共享库移到更好的位置.在OS X上,可以使用install_name_tool完成此操作.我无法找到Linux的等价物.

作为参考,readelf -d myprogram吐出以下释义输出:

Dynamic section at offset 0x1e9ed4 contains 30 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [this/is/terrible/library.so]
 0x00000001 (NEEDED)                     Shared library: [libGL.so.1]
 0x00000001 (NEEDED)                     Shared library: [libGLU.so.1]
 0x00000001 (NEEDED)                     Shared library: [libstdc++.so.6]
(continues in an uninteresting fashion)
Run Code Online (Sandbox Code Playgroud)

(并根据要求,ldd myprogram:)

    linux-gate.so.1 =>  (0x0056a000)
    this/is/terrible/library.so => not found
    libGL.so.1 => /usr/lib/mesa/libGL.so.1 (0x0017d000)
    libGLU.so.1 => /usr/lib/libGLU.so.1 (0x00a9c000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00710000)
   (etc, etc)
Run Code Online (Sandbox Code Playgroud)

我想将"this/is/terrible/library.so"改为"shared/library.so".请注意,如果程序保留在其"构建"位置,其中/// ter//.实际存在的相对路径,则ldd能够找到它,正如您所期望的那样.

我知道RPATH并不是我想要的,我不需要在全球范围内改变搜索路径.

linux linker shared-libraries install-name-tool

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

TreeSet迭代的时间复杂度是多少?

在我的代码中,Java TreeSet迭代是主要的时间因素.在查看系统时,我认为它是O(n)复杂性.任何人都可以验证吗?

我想通过提供从子节点到父节点的向后链接,我可以提高性能.

java algorithm treeset data-structures

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

用于绘制C/C++结构,指针等的快速绘制工具

我想知道你用什么来描绘C/C++中不同实体之间的关系.这可能是一个非常广泛的问题,因此我将尝试更多地澄清我的问题并举例说明.

作为用户,我正在寻找一些简单的东西,让我以非正式的方式轻松地绘制容器,指针等.目的是记录一些结构关系,将它们传递给初级开发人员.看一下图纸应该加速对代码的理解.

我此时的解决方案是使用:

1)纸和铅笔.2)Microsoft PowerPoint/Word Autoshapes.3)免费软件.

其他可能是:

4)Microsoft Visio,但我的公司没有许可证.5)UML工具.我不想这样走.这就是我所说的更正式的解决方案.我知道像Rational Rose这样的工具是xxx,我尝试过boUML和紫罗兰,它们在某些部分很好,但我更喜欢选项1),2)或3)的灵活性.

最后,让我写下一个更具体的例子:

让我说我要绘制一个包含另一个地图作为映射值的地图,并且该结果包含一个结构作为映射值,它包含一个类型的指针向量和一个指向其他类型的指针.此外,还存在其他结构,这些结构保存指向前一个映射所指向的对象的指针,因此存在从不同位置指向的对象.

这只是我的一个例子,但你可以轻松地从你体验到一个.

您将使用什么来描绘此示例或您处理的其他类似示例?

最好的问候,托马斯.

c++ drawing struct pointers

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

复杂加入 - 涉及日期范围和总和

我有两个表需要加入...我想在'id'上加入table1和table2 - 但是在表2中,id不是唯一的.我只希望为表2返回一个值,并且此值表示在指定日期范围(比如一个月)内名为"total_sold"的列的总和,但是我同时想要多个日期范围...

SELECT ta.id, sum(tb.total_sold) as total_sold_this_week, sum(tc.total_sold) as total_sold_this_month
FROM table_a as ta
LEFT JOIN table_b as tb ON ta.id=tb.id AND tb.date_sold BETWEEN ADDDATE(NOW(),INTERVAL -1 WEEK) AND NOW()
LEFT JOIN table_b as tc ON ta.id=tc.id AND tc.date_sold BETWEEN ADDDATE(NOW(),INTERVAL -1 MONTH) AND NOW()
GROUP BY ta.id
Run Code Online (Sandbox Code Playgroud)

这可行,但不会对行进行求和 - 只为每个id返回一行...如何从表b中获取总和而不是只有一行?请批评问题的格式是否可以使用更多的工作 - 如果需要,我可以重写并提供样本数据 - 这是一个更大问题的平凡版本.

-谢谢

mysql join sum between

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

Android应用程序文件

有没有一种方法以编程方式获取的路径,数据库/文件的应用程序使用,而不是硬编码"数据/数据/ mypackage.com/database.db"?

android

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