首先,如果这是一个重复的问题,我道歉.我找到了许多类似的,但没有一个直接解决我的问题.
为准备即将到来的考试,我正在做一篇过去的论文.它有一个提供代码段的问题.我们必须声明它是否编译,如果不编译,则写入发生第一个编译器错误的行并解释它.这是片段:
public static void main(String[] args) {
JFrame f = new JFrame("hi");
JTextField jtf = new JTextField(50);
jtf.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseMoved(MouseEvent evt) {
jtf.setText(evt.getLocationOnScreen().toString());
}
});
f.add(jtf);
f.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)
我期待它不要编译,因为jtf
不是final
.我通过在Eclipse中输入上面的代码测试了我的理论,它标记了预期的错误,但编译并运行得很好.只有在鼠标停留之后JTextField
我才得到预期的错误:
java.lang.Error:未解决的编译问题:无法引用封闭范围中定义的非最终局部变量jtf
我做了一些搜索,发现Eclipse使用自己的Java编译器版本.所以我在Eclipse之外重新创建了文件,并通过命令行编译/运行它.它编译时没有错误或警告,当鼠标悬停在文本字段上时,显示所需的内容java.awt.Point[x=...,y=...]
.
我对匿名内部类的理解是他们可以访问:
final
那我错过了什么?根据我的知识,这段代码不应该工作.
我想编写一个响应S3 put事件的处理程序来转换任何上传到mp4的avi文件.我在Java中使用AWS工具包插件在Eclipse中完成它.对于视频转换,我使用ffmpeg和ffmpeg-cli-wrapper,我在源代码树中提供了ffmpeg的静态(linux)二进制文件.
我发现当我上传函数时,二进制文件被放入/var/task
,但是当我尝试使用我编写的测试函数时,我得到了"权限被拒绝"错误.
import net.bramp.ffmpeg.FFmpeg;
public class LambdaFunctionHandler implements RequestHandler<S3Event, String> {
private static final String FFMPEG = "/var/task/ffmpeg";
public String handleRequest(S3Event event, Context context) {
try {
FFmpeg ff = new FFmpeg(FFMPEG);
System.out.println(ff.version());
} catch (Exception e) {
e.printStackTrace();
}
return "foo";
}
}
Run Code Online (Sandbox Code Playgroud)
并且堆栈跟踪的第一行:java.io.IOException: Cannot run program "/var/task/ffmpeg": error=13, Permission denied
.
我该如何执行这个二进制文件?我已经完成了其他人的建议和chmod 755
上传之前的二进制文件,但它没有什么区别.
当我运行我的测试时,我收到此错误:
java.lang.NullPointerException:尝试在空对象引用上调用虚方法'void android.app.Instrumentation.setInTouchMode(boolean)'
在android.test.ActivityInstrumentationTestCase2.getActivity(ActivityInstrumentationTestCase2.java:100)
at com.example.my_project.MyActivityTest.setup(MyActivityTest.java:46)
这是我的代码:
@RunWith(AndroidJUnit4.class)
public class MyActivityTest extends ActivityInstrumentationTestCase2<MyActivity> {
private MyActivity myActivity;
// ...
public MyActivityTest() {
super(MyActivity.class);
}
@Before
public void setup() throws Exception {
super.setUp();
setActivityInitialTouchMode(true);
myActivity = getActivity();
}
Run Code Online (Sandbox Code Playgroud)
我也试过用这样的测试方法替换上面的大部分代码:
@Test
public void testActivityNotNull() {
MyActivity myActivity = getActivity();
assertNotNull(myActivity);
}
Run Code Online (Sandbox Code Playgroud)
但我得到了同样的错误.为什么会这样?
我的具体案例涉及一个自定义迭代器,但这个问题很普遍.我不确定如何编写此postfix增量方法的返回类型:
template<typename T>
struct MyIterator {
size_t loc;
MyIterator operator++(int) {
MyIterator temp(*this);
++loc;
return temp;
}
};
Run Code Online (Sandbox Code Playgroud)
编译,但这样做:
template<typename T>
struct MyIterator {
size_t loc;
MyIterator<T> operator++(int) {
MyIterator<T> temp(*this);
++loc;
return temp;
}
};
Run Code Online (Sandbox Code Playgroud)
另外两个配置也可以正常工作(即<T>
只打开其中一个实例MyIterator
).有没有"正确"的方式来写这个?有关系吗?
我正在执行django项目,并且在尝试连接到Oracle数据库时收到以下消息:
DataBaseError:ORA-12505:TNS:侦听器当前不知道在 连接描述符
网上所有答案都说“您需要确保您具有正确的SID”,所以我问工作中管理所有数据库的人员,他说:“我们没有这些人员的SID。我们使用服务名称代替。”
我可以通过命令行访问数据库,但是试图让django做到这一点使我发疯。任何帮助将不胜感激。谢谢
编辑:这是我的settings.py文件。不太有趣...这是一个新项目。
DEBUG = True
TEMPLATE_DEBUG = DEBUG
ADMINS = ( ,
)
MANAGERS = ADMINS
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': '',
'USER': 'a_user',
'PASSWORD': 'a_password',
'HOST': 'a_host',
'PORT': '1521',
}
}
TIME_ZONE = 'Europe/London'
LANGUAGE_CODE = 'en-us'
SITE_ID = 1
USE_I18N = True
USE_L10N = True
USE_TZ = True
MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# 'django.contrib.staticfiles.finders.DefaultStorageFinder', …
Run Code Online (Sandbox Code Playgroud) 我正在使用自己的框架
我想使用ion python导出sql server结果集(查询一个)到excel.
在python文件里面我可以调用那个sql查询结果.
然后我想将查询结果导出到带有标头的excel.
这意味着一旦我调用python文件,该查询结果应该保存为excel电子表格.
请任何人帮我正确做到这一点?