小编Chr*_*ght的帖子

如何检查该字段是否包含java中的连字符

我的对象-从Log.d("FormattedDate",Object.getDOB())返回我;

if (!Object.getDOB().matches("[^-]*")) {
    txtDOB.setText(Object.getDOB());
   } else {
    txtDOB.setText("-");
}
Run Code Online (Sandbox Code Playgroud)

我正在检查我的Object.getDOB()是否匹配-,然后显示emptry字符串,但此regExp不起作用.

java

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

什么简单的方法来取消日期格式?

我有这种String格式的一堆日期:

String date = "Wed Sep 15 16:31:05 BST 2010";
Run Code Online (Sandbox Code Playgroud)

我想将它转换回日期或日历对象.在我开始重新发明轮子之前,有没有简单的方法可以做到这一点,最好是在JDK中出现?

java formatting date

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

如何保持sysout和syserr流不混合?

在我的代码库中是(非常简化)以下:

public static void main (String[] args) {
   System.out.println("Starting application");
   try {
      System.out.println("About to validate");
      validate(args);
   catch (Exception e) {
      e.printStackTrace();
   }
}

public static void validate(String[] args) {
   System.out.println("Your first arg is " + args[0]);
   if (someProblemWith(args)) {
      System.out.println("Your args are wrong.  It should be: ...");
      throw new BadArgsException(e);
   }
}
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.请注意,上面的示例代码是设计的,只是为了在异常和堆栈跟踪打印之前显示多个日志语句.这通常意味着我的上一个日志记录语句在堆栈跟踪输出的中间丢失.是否有一种优雅的方式要求e.printStackTrace()语句等待System.out完成其工作?我基本上在寻找堆栈跟踪是发生错误时打印的最后一件事.以下是我的程序的示例输出:

 java.lang.Throwable
 ....
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 Your args are wrong.  It should be: ...
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
Run Code Online (Sandbox Code Playgroud)

java error-handling stream

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

我应该关注这个compareTo/equals/hashCode实现吗?

我正在QA中编写一堆代码并找到了几个实例,其中开发人员有一个实现Comparable的DTO.这个DTO里面有7个或8个字段.compareTo方法仅在一个字段上实现:

private DateMidnight field1;  //from Joda date/time library

public int compareTo(SomeObject o) {
   if (o == null) {
      return -1;
   }
   return field1.compareTo(o.getField1());
}
Run Code Online (Sandbox Code Playgroud)

类似地,equals方法被覆盖,基本归结为:

return field1.equals(o.getField1());
Run Code Online (Sandbox Code Playgroud)

最后哈希码方法的实现是:

return field1.hashCode;
Run Code Online (Sandbox Code Playgroud)

field1永远不应该为null,并且在这些对象中是唯一的(即我们不应该得到两个具有相同对象的对象field1).

因此,实现是一致的,这是好的,但我应该担心只使用一个字段?这不寻常吗?是否可能导致问题或混淆其他开发人员?我正在考虑这样的场景,其中传递了这些对象的列表,而另一个开发人员使用Map或Set of somesort并从这些对象获得异常行为.任何想法都赞赏.谢谢!

java implementation equals hashcode compareto

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

使用泛型是否有解决我的问题的方法?

我正在使用java.util.concurrency框架实现一些代码.我将把一组callables传递给一个将并行执行它们的类.我正试图找出以类型安全的方式获取每个响应的最佳方法.这里有一些代码可以帮助解释我在做什么:

首先我创建我的Callables,这是要并行调用的工作单元.例如,这里第一个工作单元返回a String,第二个工作单元返回Integer:

Callable<String> firstCallable = new Callable<String>(){
   public String call() {...}
};

Callable<Integer> secondCallable = new Callable<Integer>(){
   public Integer call() {...}
};
Run Code Online (Sandbox Code Playgroud)

现在我将它们激活到我的框架中以并行运行它们,并且诀窍是获得适当的响应对象的句柄.这是一个有效的实现:

Map<Callable,Object> responseMap = ParallelSender.send(firstCallable, 
                                                       secondCallable);
Run Code Online (Sandbox Code Playgroud)

Object特定的响应在哪里Callable.因此,你可以这样做:

String firstCallableResponse = (String)responseMap.get(firstCallable);
Integer secondCallableResponse = (Integer)responseMap.get(secondCallable);
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,从地图中获取时是否可以避免投射?这不会编译,但我正在考虑这些方面:

Map<Callable<T>, T> responseMap = ParallelSender.send(...);
String firstCallableResponse = responseMap.get(firstCallable);
Run Code Online (Sandbox Code Playgroud)

这样返回的值基于Callable键的类型参数.我担心的是,如果有人refactors工作单位的返回类型(从说IntegerBigDecimal,然后自投或其他)Object永远不会被自动重构工具被捕获,并可能导致运行时问题.


结论:感谢下面的所有有用的评论和讨论,我采取了一个略有不同的机智(尽管肖恩帕特里克弗洛伊德认为上面的问题是正确的).我最终完全删除了响应映射并Callable用响应填充了对象.以下是相关的代码段:

public abstract class AbstractParallelCallable<V> implements Callable<V> {

   /** The response generated by …
Run Code Online (Sandbox Code Playgroud)

java generics map

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

如何避免缓存挂起的意图?

给定两个具有不同数据A和B的相同小部件,当小部件A的数据显示在小部件启动的活动中时,按下后退按钮然后按下小部件B它一切正常.然而,当显示小部件A的数据时,按下主页按钮然后按下小部件B,仍然显示小部件A的数据.从Android - 当从具有不同附加功能的小部件启动相同的活动时,如何防止从HOME按钮返回后显示相同的实例?它表明我的问题是PendingIntents(对于小部件A和B)两者都是相同的,并且仅在附加内容上有所不同,因此被缓存.即附加功能是widget ID,它是我需要检索widget-press动作的所有数据的关键.一个建议是使用不同的数据,但我似乎无法让这个工作.这是代码:

Intent intent = new Intent(context, WidgetActivity.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
intent.setData(Uri.withAppendedPath(Uri.parse("droidln://widget/id/"),
               String.valueOf(appWidgetId)));
PendingIntent pendingIntent = 
               PendingIntent.getActivity(context, appWidgetId, intent, 0);
Run Code Online (Sandbox Code Playgroud)

添加setData到意图产生没有区别.关于如何解决缓存挂起意图问题的任何想法?我也尝试过:

intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
Run Code Online (Sandbox Code Playgroud)

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Run Code Online (Sandbox Code Playgroud)

intent.setAction("actionstring" + System.currentTimeMillis());
Run Code Online (Sandbox Code Playgroud)

一切都没有效果.

android caching android-pendingintent

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

Eclipse找不到com.google.android.maps.MapActivity的文件

经过几个小时的配置和搜索代码后,我已经减少了几百个错误,并留下了这两个错误:

"该项目未构建,因为其构建路径不完整.无法找到com.google.android.maps.MapActivity的类文件.修复构建路径然后尝试构建此项目"

"无法解析com.google.android.maps.MapActivity类型.它是从所需的.class文件间接引用的"

我到处寻找任何关于如何解决这个问题的提示.我的构建路径似乎很好.我包括了可能适用的所有JAR.我很确定我正在使用正确的ADT,所以任何帮助对于需要改变的东西都会很棒.

android mapactivity

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

如何避免旧的小部件在重大代码返工期间失败/消失?

我在市场上有一个支持小部件的应用程序.我对应用程序进行了一些重大更改,重新修改了许多内部,替换/重命名活动等.其他更改包括从不同的共享首选项键获取窗口小部件配置数据,尽管我已编写转换代码来处理迁移.该应用程序按照我的意愿工作,包括小部件,从新鲜安装.但是,我现在正在测试从旧版本的应用程序升级到新版本(通过模拟器).我看到一些奇怪的行为.有一次,小部件在初始启动时显示正常,但是当点击时尝试启动旧活动而不是我编程的新活动.所以第一个问题是,为什么小部件没有更新到app安装上的新代码?

我测试升级的其余尝试导致现有小部件在新版本安装时完全消失.可能是什么导致了这个?log-cat日志中没有任何注释.有什么建议?

android android-appwidget

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

JAXB生成了简单类型缺失限制

我正在生成我的第一个JAXB数据绑定.我有一个架构,其中包含一个xs:simpleType:

<xs:simpleType name="NINumberType">
    <xs:restriction base="xs:string">
        <xs:pattern value="[A-Z]{2}\d{6}[A-D]{0,1}"/>
    </xs:restriction>
</xs:simpleType>
Run Code Online (Sandbox Code Playgroud)

在我的binding.xjb中我有这个:

<jxb:bindings version="1.0"
     xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
     xmlns:xs="http://www.w3.org/2001/XMLSchema"
     xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
     jxb:extensionBindingPrefixes="xjc">

     <jxb:bindings schemaLocation="mySchema.xsd" node="/xs:schema">
         <jxb:globalBindings mapSimpleTypeDef="true" />
         <jxb:schemaBindings>
             <jxb:package name="com.company.jaxb.mySchema"/>
         </jxb:schemaBindings>
     </jxb:bindings>

</jxb:bindings>
Run Code Online (Sandbox Code Playgroud)

然后,通过Eclipse(RAD 7.5),我右键单击模式,然后选择Generate-> Java.这会产生预期的数据绑定对象,除了NINumberType没有内置限制:

/**
 * <p>Java class for NINumberType simple type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;simpleType name="NINumberType">
 *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *     &lt;pattern value="[A-Z]{2}\d{6}[A-Z]{0,1}"/>
 *   &lt;/restriction>
 * &lt;/simpleType>
 * </pre>
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "NINumberType", propOrder = …
Run Code Online (Sandbox Code Playgroud)

java jaxb

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

NestedScrollView中的Android约束布局渲染问题

我试图将我的ConstraintLayout添加到NestedScrollView.在观看我的ContraintLayout时,一切看起来都很好.

但是然后将布局包含到我的NestedScrollView中会折叠ContraintLayout.(即使我在include和我的CL中使用匹配父宽度/ heigt)

这实际上是之前版本的ContraintLayout(~pre Beta)中的一个错误.Google Bug报告

我正在使用Verion beta4的这种方法.链接到Youtube AndroidDev频道

constraint_layout.xml:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/coordinator_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="de.project.andy.aliver.JobCreatorActivity">

    <include layout="@layout/content_job_creator" />

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="145dp"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="143dp"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/AppTheme.PopupOverlay" />

        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/jc_fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@android:drawable/arrow_up_float"
        android:layout_gravity="end|bottom"
        app:fabSize="normal"
        android:layout_margin="15dp" />
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

nested_scrollview_layout.xml:

<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="de.project.andy.aliver.JobCreatorActivity"
    tools:showIn="@layout/activity_job_creator">

    <include layout="@layout/constraint_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</android.support.v4.widget.NestedScrollView>
Run Code Online (Sandbox Code Playgroud)

有解决方法吗?

java android android-layout

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