为什么以下程序会抛出异常?
public class MainClass{
public static void main(String[] argv){
callMethod(2);
}
public static void callMethod(Integer... i){
System.out.println("Wrapper");
}
public static void callMethod(int... i){
System.out.println("Primitive");
}
Run Code Online (Sandbox Code Playgroud)
}
对于类型MainClass,方法callMethod(Integer [])是不明确的
好的,我可以看到两种方法中的任何一种都可以工作(如果另一种方法被注释掉),但我也知道如果一个原语与方法输入的类型不完全匹配,会发生什么情况.
尝试的第一件事是扩大原语.那么,如果有第三种方法:
public static void callMethod(long i){
System.out.println("long");
}
Run Code Online (Sandbox Code Playgroud)
代码会打印很长时间
第二件事是封装原语.因此,如果有一个方法采用整数,那将是一个被调用的方法.
第三个优先事项是var-args.
基于上述优先顺序,我认为第二种情况就是如此.我希望将int包装成一个Integer并调用(Integer ...).但当然这不会发生.相反,抛出异常.
是否有人看到并可以解释为什么优先级不适用于此示例?
干杯!
我知道使用 SimpleHTTPServer 我可以让网络浏览器通过互联网访问我的目录。因此,我只运行一行代码,因此,在另一台计算机上工作的另一个人可以使用他/她的浏览器查看我的目录的内容。
但我想知道是否可以做出更复杂的东西。例如,某人使用他/她的浏览器加载我的带有一组参数(example.py?x=2&y=2)的Python程序,结果,他/她看到了Python程序生成的HTML页面(而不是Python 程序)。
我还想知道是否可以处理提交到 SimpleHTTPServer 的 html 表单。
我有一个非常简单的AsyncTask实现示例,并且在使用Android JUnit框架测试它时遇到问题.
当我在普通应用程序中实例化并执行它时,它工作得很好.但是当它从任何Android测试框架类(即AndroidTestCase,ActivityUnitTestCase,ActivityInstrumentationTestCase2等)执行时,它表现得很奇怪:
doInBackground()正确执行方法onPostExecute(),onProgressUpdate()等) -只是默默忽略它们没有表现出任何错误.这是非常简单的AsyncTask示例:
package kroz.andcookbook.threads.asynctask;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.ProgressBar;
import android.widget.Toast;
public class AsyncTaskDemo extends AsyncTask<Integer, Integer, String> {
AsyncTaskDemoActivity _parentActivity;
int _counter;
int _maxCount;
public AsyncTaskDemo(AsyncTaskDemoActivity asyncTaskDemoActivity) {
_parentActivity = asyncTaskDemoActivity;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
_parentActivity._progressBar.setVisibility(ProgressBar.VISIBLE);
_parentActivity._progressBar.invalidate();
}
@Override
protected String doInBackground(Integer... params) {
_maxCount = params[0];
for (_counter = 0; _counter <= _maxCount; _counter++) {
try { …Run Code Online (Sandbox Code Playgroud) 我刚刚在我的Windows 7(64位)联想t61p笔记本电脑上安装了Python 2.6.
python setup.py install
Run Code Online (Sandbox Code Playgroud)
(在安装过程中至少没有报告错误).
现在我正在尝试使用pymongo,easy_install但我没有取得多大成功.这似乎easy_install根本不起作用.我easy_install以管理员身份执行:
C:\>easy_install
Cannot find Python executable C:\Program Files\Python26\python.exe
Run Code Online (Sandbox Code Playgroud)
路径C:\Program Files\Python26\python.exe 是正确的.
我在bugs.python.org上发现了这个bug报告似乎是相关的,虽然它的状态是'Resolved'.
你有什么想法可能是错的吗?任何有关诊断问题的指示,提示或技巧都将不胜感激.
编辑:这是我在尝试安装pymongo时收到的堆栈跟踪:
C:\Users\Rune Ibsen\Documents\Downloads\pymongo-1.4>python setup.py install
running install
running bdist_egg
running egg_info
writing pymongo.egg-info\PKG-INFO
writing top-level names to pymongo.egg-info\top_level.txt
writing dependency_links to pymongo.egg-info\dependency_links.txt
reading manifest file 'pymongo.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pymongo.egg-info\SOURCES.txt'
installing library code to build\bdist.win-amd64\egg
running …Run Code Online (Sandbox Code Playgroud) 可以cin在Qt中使用吗?我可以使用cout但无法找到如何cin在Qt控制台应用程序中使用的示例.
我有大约80个用MIDI编写的乐曲,我想用声音库将它们转换成WAVE.因此,它们可以在所有计算机上播放并发出相同的声音.是否有可以自动执行此操作的库?
最好是在C#中,但其他编程语言也可以.
我正在构建一个绑定到$(window).scroll()事件的自动跟随div.这是我的JavaScript.
var alert_top = 0;
var alert_margin_top = 0;
$(function() {
alert_top = $("#ActionBox").offset().top;
alert_margin_top = parseInt($("#ActionBox").css("margin-top"));
$(window).scroll(function () {
var scroll_top = $(window).scrollTop();
if(scroll_top > alert_top) {
$("#ActionBox").css("margin-top", ((scroll_top-alert_top)+(alert_margin_top*2))+"px");
console.log("Setting margin-top to "+$("#ActionBox").css("margin-top"));
} else {
$("#ActionBox").css("margin-top", alert_margin_top+"px");
};
});
});
Run Code Online (Sandbox Code Playgroud)
此代码假定存在此CSS规则
#ActionBox {
margin-top: 15px;
}
Run Code Online (Sandbox Code Playgroud)
它需要一个id为"ActionBox"的元素(在本例中为div).div位于左侧对齐的菜单中,沿着侧面向下延伸,因此它的起始偏移大约为200像素.一旦用户滚动到div可能开始从浏览器视口顶部消失的点,我们的目标是开始添加margin-top值(是的,我知道将它设置为position:fixed会做同样的事情,但是它会遮挡ActionBox下面的内容但仍然在菜单中).
现在,console.log显示事件每次都应该触发,并且它正在设置正确的值.但是在我的网络应用程序的某些页面中,div没有重新绘制.这特别奇怪,因为在其他页面(在IE中)代码按预期工作(并且它每次都在FF,Opera和WebKit中工作).所有页面都根据W3C验证器和FireFox HTMLTidy验证器进行评估(0错误和0警告),并且不会抛出任何JS错误(根据IE Developer Toolbar和Firebug).这个谜团的另一个部分,如果我在IE开发人员工具中取消选择HTML样式浏览器中的#ActionBox margin-top规则,那么如果滚动事件触发了重绘,则div会立即跳回到新调整的位置.此外,如果我强制IE8进入Quirks模式或兼容模式,则偶数会触发更新.
还有一件事,它在IE7和IE 6中按预期工作(感谢IETester的精彩)
我想将数据保存到我的elisp程序中的文件中.我有一个多维列表,我想保存到文件,所以我可以在下次程序运行时恢复它.最简单/最好的方法是什么?
当然,我意识到我可以简单地将数据写入自定义格式的缓冲区然后保存缓冲区,但是当我想要恢复它时,我必须编写一个函数来解析该数据格式.我宁愿不必那样做.
在Python中,有一个Pickle模块,它允许您将对象"转储"到磁盘并非常容易地恢复它们.elisp有类似的东西吗?
我现在看到很多网站,主要是有大量图片的教程网站,一旦进入视口,他们只会在页面下方加载图片?
我该怎么做呢?
一个例子:
http://www.chopeh.com/blog/logo-design-start-to-finish/
向下滚动页面时,视口下方的图像会淡入
我在使用std复制功能时收到警告.
我有一个byte我声明的数组.
byte *tstArray = new byte[length];
Run Code Online (Sandbox Code Playgroud)
然后我有几个其他字节数组声明和初始化一些十六进制值,我想根据一些初始用户输入使用.
我有一系列if语句用于基本解析原始输入,并且基于某些字符串,我选择使用哪个字节数组,并在此过程中将结果复制到原始tstArray.
例如:
if(substr1 == "15")
{
std::cout<<"Using byte array rated 15"<<std::endl;
std::copy(ratedArray15,ratedArray15+length,tstArray);
}
Run Code Online (Sandbox Code Playgroud)
我得到的警告是警告C4996:'std :: copy':带有可能不安全的参数的函数调用 - 此调用依赖于调用者来检查传递的值是否正确.
一种可能的解决方案是通过使用-D_SCL_SECURE_NO_WARNINGS来禁用此警告,我认为.嗯,这就是我正在研究的内容.
但是,我不确定这是否意味着我的代码真的不安全,我实际上需要做一些检查?