这是以编程方式编写Java的后续问题
我正在寻找JDT构建一个独立的应用程序(而不是一个eclipse插件)来编程编写JUnit测试类.
我想知道我的意图是否可行.
另外我想知道一些让我入门的教程,我上一期提出的教程对我来说似乎有点先进.
我正在尝试调试依赖反射的Java应用程序。现在我得到的错误如下:
java.lang.IllegalArgumentException: Can not set int field DataStructures.StackAr.topOfStack to java.lang.Integer
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:150)
at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:37)
at sun.reflect.UnsafeIntegerFieldAccessorImpl.getInt(UnsafeIntegerFieldAccessorImpl.java:38)
at sun.reflect.UnsafeIntegerFieldAccessorImpl.get(UnsafeIntegerFieldAccessorImpl.java:18)
at java.lang.reflect.Field.get(Field.java:358)
Run Code Online (Sandbox Code Playgroud)
正在运行的应用程序的最后几行是:
Field f = classUnderTest.getDeclaredField(processFieldName(var));
f.setAccessible(true);
Long value = (Long) f.get(runtimeInstance);
Run Code Online (Sandbox Code Playgroud)
错误消息有点令人误解,我不确定为什么它在提及要set执行的操作时却提到了操作get。
我怀疑runtimeInstance并非预期类别的对象。但是,该错误消息使我不知所措。
有人遇到过这个问题吗?有什么线索吗?
PS1:导致异常的确切行是此行:
Long value = (Long) f.get(runtimeInstance);
Run Code Online (Sandbox Code Playgroud)
PS2:processFieldName(var)处理字段的正确名称,即,它从字段名称为this.等等的字符串中删除一些伪像。
是否可以为启用NFC的应用程序仅在android中启用一项活动的NFC?
我读过这篇文章, 仅从特定活动中读取NFC标签
但是设备仍在扫描应用程序所有活动上的标签。
编辑:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.nfccheckout" >
<uses-feature
android:name="android.hardware.nfc"
android:required="true" />
<uses-permission android:name="android.permission.NFC" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".activities.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activities.ReceiveActivity"
android:label="@string/title_activity_receive" >
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/json+com.example.nfccheckout" />
</intent-filter>
</activity>
<activity
android:name=".activities.CreatePayloadActivity"
android:label="@string/title_activity_create_payload" >
</activity>
<activity
android:name=".activities.ConfirmationActivity"
android:label="@string/title_activity_confirmation" >
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud) 我正在编写一个bash脚本来运行我正在编写的工具的集成测试.
基本上我使用一组输入运行应用程序,并使用diff命令行工具将结果与期望值进行比较.
它有效,但我想通过了解diff命令的结果来增强它,并根据diff的结果打印"SUCCESS"或"FAIL".
我该怎么做?
有一个简单的方法,一句话String,随机大写字母?
例:
换句话说,super我会得到SuPEr或SUpER.
我正在寻找一个Java解决方案.
我正在尝试使用Gradle开始运行jar文件
我的任务如下:
task startServer(type: Exec) {
workingDir file("${buildDir}/aux/server/server-S31-SNAPSHOT")
commandLine 'java -client -d64 -Xms256M -Xmx512M -DisableExplicitGC -XX:MaxPermSize=128M -jar server-S31-SNAPSHOT.jar'
}
Run Code Online (Sandbox Code Playgroud)
而我的文件夹和文件实际上就在那里.
我能跑了
cd 'path/to/file'
java -client -d64 -Xms256M -Xmx512M -DisableExplicitGC -XX:MaxPermSize=128M -jar server-S31-SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)
正好.
但是gradle返回的异常是找不到文件或目录:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':netmedepro-android:startServer'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.changedetection.state.CacheLockReleasingTaskExecuter$1.run(CacheLockReleasingTaskExecuter.java:35)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:179)
at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:232)
at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:142)
at org.gradle.api.internal.changedetection.state.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:83)
at org.gradle.api.internal.changedetection.state.CacheLockReleasingTaskExecuter.execute(CacheLockReleasingTaskExecuter.java:33)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.ContextualisingTaskExecuter.execute(ContextualisingTaskExecuter.java:34)
at org.gradle.api.internal.changedetection.state.CacheLockAcquiringTaskExecuter$1.run(CacheLockAcquiringTaskExecuter.java:39)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:124)
at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:112)
at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:134)
at org.gradle.api.internal.changedetection.state.DefaultTaskArtifactStateCacheAccess.useCache(DefaultTaskArtifactStateCacheAccess.java:79)
at org.gradle.api.internal.changedetection.state.CacheLockAcquiringTaskExecuter.execute(CacheLockAcquiringTaskExecuter.java:37)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57) …Run Code Online (Sandbox Code Playgroud) 我有一个用 ObjC 编写的应用程序。我选择了 Realm 作为我的数据库。
我想开始将我的应用程序的某些部分迁移到 Swift。
到达 Realm 时,我感到很困惑。
有两个pods。根据我从文档中的理解,RealmSwift 用于纯 Swift 项目,对吗?
但是,是否可以在没有 RealmSwift 的情况下将模型类迁移到 Swift pod?
我正在使用iOS 5开发iOS应用程序.
我无法使用宏中央调度来填充GMGridViewCell的视图.
问题不在于GridCell本身,而是在GCD中访问数据.
这是我的代码:
- (GMGridViewCell *)GMGridView:(GMGridView *)gridView cellForItemAtIndex:(NSInteger)index
{
//NSLog(@"Creating view indx %d", index);
CGSize size = [self sizeForItemsInGMGridView:gridView];
GMGridViewCell *cell = [gridView dequeueReusableCell];
if (!cell)
{
cell = [[GMGridViewCell alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)];
}
[[cell.contentView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];
dispatch_queue_t fillCellQueue = dispatch_queue_create("Cell fetch queue", NULL);
dispatch_async(fillCellQueue, ^{
SearchGridViewCell *cellView = [UIView loadFromNib:@"SearchGridViewCell" owner:self];
Item *item = [self.foundItems objectAtIndex:index];
cellView.itemImageView.image = [UIImage imageWithData:item.image.thumb];
cellView.itemNameLabel.text = item.name;
cellView.brandImageView.image = [UIImage imageWithData:item.group3.image.thumb];
Attribute *itemAttribute = [item.attributes objectAtIndex:0];
cellView.attributeLabel.text = [itemAttribute.name …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚我的iPad在平板电脑上启动时的方向.
我总是说它是以肖像模式开始的,但事实并非如此.
我已经使用此处采样的代码来检测启动时的方向.
碰巧的是,当我的设备面朝上在平面上时,它声称它处于纵向模式.但是状态栏在视觉上处于横向模式.
有没有解决的办法?
我使用的是iOS 5和Xcode 4.3.
编辑:更多细节
这是我的更新定位方法:
- (void)updateOrientation {
UIInterfaceOrientation iOrientation = self.interfaceOrientation;//[[UIApplication sharedApplication] statusBarOrientation];
UIDeviceOrientation dOrientation = [UIDevice currentDevice].orientation;
bool landscape;
if (dOrientation == UIDeviceOrientationUnknown || dOrientation == UIDeviceOrientationFaceUp || dOrientation == UIDeviceOrientationFaceDown) {
// If the device is laying down, use the UIInterfaceOrientation based on the status bar.
landscape = UIInterfaceOrientationIsLandscape(iOrientation);
} else {
// If the device is not laying down, use UIDeviceOrientation.
landscape = UIDeviceOrientationIsLandscape(dOrientation);
// There's a bug in …Run Code Online (Sandbox Code Playgroud) 我有以下正则表达式
regex = [NSRegularExpression regularExpressionWithPattern:@"(.*)|(.*)"
options:NSRegularExpressionCaseInsensitive
error:&error];
Run Code Online (Sandbox Code Playgroud)
我想用文本字段中的值替换匹配此正则表达式的第一组字符串.
例如,如果我有,Hi|Peter并替换Goodbye我得到Goodbye|Peter
我怎样才能做到这一点?
ios ×3
java ×2
objective-c ×2
android ×1
bash ×1
core-data ×1
diff ×1
eclipse-jdt ×1
gradle ×1
intentfilter ×1
ipad ×1
nfc ×1
orientation ×1
random ×1
realm ×1
reflection ×1
regex ×1
string ×1
swift ×1
tags ×1