小编mk_*_*mk_的帖子

如何使我的类可迭代,以便我可以使用foreach语法?

我有BookBookList课.BookList是这样的:

public class BookList 
{
    private final List<Book> bList = new ArrayList<Book>();

    public int size() { return bList.size(); }

    public boolean isEmpty() {  ... }

    public boolean contains(Book b) { ...  }

    public boolean add(Book b) { ...  }

    public boolean remove(Book b) {  .. } 

    public void clear() { ... }

    public Object get(int index) { ... }

}
Run Code Online (Sandbox Code Playgroud)

在我的主要课程中,我想在每个循环中打印书籍的标题:

for(Book b : bList)
{
    b.print();
}
Run Code Online (Sandbox Code Playgroud)

Eclipse说:

只能遍历数组或java.lang.Iterable的实例

我怎样才能使这个工作?

java foreach iterable

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

在Android模拟器之间发送短信

在Android Studio 2.0之前,我可以使用模拟器ID在模拟器之间发送SMS消息(请参阅:https://stackoverflow.com/a/4726121/212508).但是,此方法不适用于右侧面板的新仿真器.

是否可以在新的Android模拟器(2.x)之间发送短信?

注意:我想将消息从模拟器发送到模拟器.不是通过telnet或ADM.

android android-emulator

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

为什么我们真的需要向下倾斜?

我想弄清楚为什么我需要向下转换.我从拼贴中重读了我的笔记并找到了下面的例子.

class Student {...}

class Graduate exteds Student {
   getResearchTopic(){...} // this method only exists in Graduate class.
}
Run Code Online (Sandbox Code Playgroud)

我们有一个ref类到Student类,想要访问getResearchTopic方法;

Student s1 = new Graduate();
if(s1 instanceof Graduate){
   ((Graduate)s1).getResearchTopic();
}
Run Code Online (Sandbox Code Playgroud)

向下倾斜的好例子哈?我的问题是为什么不首先宣布s1为毕业生?是否有一个真实的例子,我将不得不转发而不是使用实际类的实例?

java downcast

6
推荐指数
2
解决办法
7866
查看次数

Samsung设备上缺少Android TextView文本

我在Play商店有一个应用程序.我的一些用户报告说他们看不到标签.问题似乎只发生在Android 4.1及更早版本的三星设备上.我无法在模拟器上重复这个问题.有没有人遇到过这样的事情?

在此输入图像描述

TextViews显示为黑框.这些是普通的文本视图.

<TextView
    android:id="@+id/text_box"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:background="@drawable/phone_list_row_border"
    android:gravity="center_vertical"
    android:maxLines="1"
    android:text="\tBla bla bla"
    android:textColor="@color/black"
    android:textSize="@dimen/list_row_text_size"/>

<TextView
    android:id="@+id/text_eksi"
    style="@style/animating_button_labels"
    android:layout_gravity="center"
    android:layout_marginTop="-10dp"
    android:gravity="center"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:text="@string/eksi_sozluk"
    android:textAppearance="?android:attr/textAppearanceLarge"/>
Run Code Online (Sandbox Code Playgroud)

我找到了这个问题,但这似乎巧合地解决了这个问题.我被卡住了,因为我不能在我的任何设备上重复这个问题.我需要某种提示来重复错误或找到原因.

谢谢.

编辑:phone_list_row_border.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle"
       android:thickness="1dp">

    <stroke
        android:width="2dp"
        android:color="#44aa77"/>

    <corners android:radius="10dp"/>

    <padding
        android:bottom="5dp"
        android:left="10dp"
        android:right="10dp"
        android:top="5dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

另一个有一个抽屉的风格.它的xml在这里:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:bottom="-2dp"
        android:left="-2dp"
        android:right="-2dp"
        android:top="1dp">
        <shape android:shape="rectangle">
            <stroke
                android:width="1dp"
                android:color="@color/black"/>
        </shape>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

android textview

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

java使用套接字发送文件

我正在尝试使用Java将文件从一台计算机发送到另一台计算机.我已经编写了下面的代码,如果发送方和接收方都在同一台计算机上启动它可以正常工作,但如果它们在不同的机器上工作,则接收的文件大小比原始文件大,并且它已损坏.

注意:我正在尝试传输最大10 MB的文件.

我怎样才能解决这个问题?

发件人:

ServerSocket server_socket = new ServerSocket(8989);
File myFile = new File(myPath);

Socket socket = server_socket.accept();
int count;
byte[] buffer = new byte[1024];

OutputStream out = socket.getOutputStream();
BufferedInputStream in = new BufferedInputStream(new FileInputStream(myFile));
while ((count = in.read(buffer)) > 0) {
     out.write(buffer, 0, count);
     out.flush();
}
socket.close();
Run Code Online (Sandbox Code Playgroud)

接收器:

Socket socket = new Socket(address, 8989);
FileOutputStream fos = new FileOutputStream(anotherPath);
BufferedOutputStream out = new BufferedOutputStream(fos);
byte[] buffer = new byte[1024];
int count;
InputStream in = socket.getInputStream();
while((count=in.read(buffer)) >0){
    fos.write(buffer); …
Run Code Online (Sandbox Code Playgroud)

java sockets network-programming

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

如何在 jpeglib.h (jpeg-8c) 中包含 &lt;stdio.h&gt;

我想用 C++ 编辑一些 jpeg 文件。我链接到 libjpg 并编译了我的代码。编译器抱怨 typedefs FILE 和 size_t。我用 google 搜索了这个问题,发现这个库被设计为在 C 而不是 C++ 下编译,所以我们必须手动将 include stdio.h 添加到“jpeglib.h”。我这样做了,但这次编译器给了我以下错误:

\n\n
undefined reference to `jpeg_CreateCompress\'    JPGImage.cpp    /KFCK/src   line 47 C/C++ Problem\nundefined reference to `jpeg_CreateDecompress\'  JPGImage.cpp    /KFCK/src   line 92 C/C++ Problem\nundefined reference to `jpeg_destroy_compress\'  JPGImage.cpp    /KFCK/src   line 77 C/C++ Problem\nundefined reference to `jpeg_destroy_decompress\'    JPGImage.cpp    /KFCK/src   line 123    C/C++ Problem\nundefined reference to `jpeg_finish_compress\'   JPGImage.cpp    /KFCK/src   line 74 C/C++ Problem\nundefined reference to `jpeg_finish_decompress\' JPGImage.cpp    /KFCK/src   line 120    C/C++ Problem\nundefined reference to `jpeg_read_header\'   JPGImage.cpp …
Run Code Online (Sandbox Code Playgroud)

c++ eclipse

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

Euler014比int长了很长时间

如果我运行下面的代码,则完成时间不到1秒.

如果我将序列从long更改为int,则需要超过10分钟.

为什么?

long sequenceLength = 0;
long startingNumber = 0;
long sequence;

for (int i = 2; i <= 1000000; i++) {
    int length = 1;
    sequence = i;
    while (sequence != 1) {
        if ((sequence % 2) == 0) {
            sequence = sequence / 2;
        } else {
            sequence = sequence * 3 + 1;
        }
        length++;
    }

    //Check if sequence is the best solution
    if (length > sequenceLength) {
        sequenceLength = length;
        startingNumber = i;
    }
}
Run Code Online (Sandbox Code Playgroud)

java int

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