Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java (弗吉尼亚理工大学)提交的网络会议获胜';我不允许提交这个_Java - Fatal编程技术网

Java (弗吉尼亚理工大学)提交的网络会议获胜';我不允许提交这个

Java (弗吉尼亚理工大学)提交的网络会议获胜';我不允许提交这个,java,Java,有人能告诉我这有什么问题吗??这就是网络广播所说的 [PL10]在播放列表中。删除包含3首歌曲的歌曲(1): 删除歌曲后播放列表的内容错误 [PL11]在播放列表中。删除歌曲(2)和3首歌曲:删除歌曲后,播放列表的内容错误 [PL12]在播放列表中。包含3首歌曲的removeSong(int):删除索引错误的歌曲后,播放列表应保持不变 [PL13]播放列表后的播放列表内容错误。当歌曲出现>1次时,请删除歌曲 [PL14]调用播放列表时出现异常。删除包含3首歌曲的歌曲列表 import java.

有人能告诉我这有什么问题吗??这就是网络广播所说的

[PL10]在播放列表中。删除包含3首歌曲的歌曲(1): 删除歌曲后播放列表的内容错误 [PL11]在播放列表中。删除歌曲(2)和3首歌曲:删除歌曲后,播放列表的内容错误 [PL12]在播放列表中。包含3首歌曲的removeSong(int):删除索引错误的歌曲后,播放列表应保持不变 [PL13]播放列表后的播放列表内容错误。当歌曲出现>1次时,请删除歌曲 [PL14]调用播放列表时出现异常。删除包含3首歌曲的歌曲列表

import java.io.File;
import java.util.ArrayList;
import java.util.Scanner;

public class PlayList {
private String name;
private ArrayList<Song> songList;

public String getName() {
    return this.name;
}

public String setName(String name) {
    return this.name = name;
}

public ArrayList getsongList() {
    return this.songList;
}

public ArrayList setsongList(ArrayList songList) {
    return this.songList = songList;
}

@Override
public String toString() {
    return "PlayList [name= " + name + ",  Songlist = " + songList + "]";
}

public PlayList() {
    this.name = "Untitled";
}

public PlayList(String newName) {
    this.name = newName;
    songList = new ArrayList<Song>(); // add for both constructors
}

/**
 * Longest method. Takes input from file, converts it to string and displays
 * song or 'loads' it
 **/
public boolean loadSongs(String filename) {
    try {
        File text = new File(filename);
        Scanner scan = new Scanner(text);
        while (scan.hasNextLine()) {
            String art = "anything";
            String sng = "somethingelse";

            for (int i = 0; i <= 4; i++) {
                if (i == 0) {
                    art = scan.nextLine().trim();
                    if (art.length() == 0) {
                        continue;
                    }

                }
                if (i == 1) {
                    sng = scan.nextLine();
                }
                if (i == 2) {
                    String[] duration = scan.nextLine().split(";");
                    int m = Integer.parseInt(duration[0]); // like 1:
                    int s = Integer.parseInt(duration[1]); // like 135
                    int sec = 0;
                    int min = 0;
                    int rem = 0;
                    if (s >= 60) { // if s = 135
                        sec = s / 60; // sec = 2.25, or 2
                        rem = s % 60; // rem = 15
                        s = rem; // s is now 15
                        min = m * sec + m; // 1*2 + 1 = 3
                    }

                    Song anysong = new Song(art, sng, min, s);
                    songList.add(anysong);

                }

            }

        }

        return true;
    } catch (Exception e) {
        return false;
    }
}

public boolean clear() {

    if (!songList.isEmpty()) {
        songList.clear();
        return true;
    }

    return false;
}

public boolean addSong(Song s) {
    if (songList.add(s)) {
        return true;

    }
    return false;
}

public Song removeSong(int index) {
    index = 0;
    int i = 0;
    // check to see if the index is in the boundaries of the songList
    if (index >= 0 && index < songList.size()) {
        for (i = 0; i < songList.size(); i++) {
            return songList.remove(i);
        }
        return songList.remove(i);
    }

    else {
        return null;
    }

    // else return null
    // if ( index >= 0 && index < songList.size()

}

public Song removeSong(Song s) {
    boolean found = false;
    for (int j = 0; j > songList.size(); j++) {
        songList.remove(s);
        if (songList.remove(j).equals(songList.remove(j + 1))) {
            found = true;
            return s;
        } else {
            return null;
        }
        // compare all of these .equals()
        // what your doing right now is deleting all the songs
        // if you find that two are true, set ffound = true
        // then return s if found is true, return null if found is false
    }
    return s;
}

// getSong method

public Song getSong(int index) {
  int i = 0;
    if (index >= 0 && index <= songList.size()) {
      for (i = 0; i < songList.size(); i++) {
            return songList.get(i);
        }
  }
  return songList.get(i);
}

// it is similar to the removeSong(int Index)
// you need the same if statement

public void play(Song s) {
    for (int z = 0; z > songList.size(); z++) {
        System.out.println(songList);
    }
}

public int size() {
    return songList.size();
}
导入java.io.File;
导入java.util.ArrayList;
导入java.util.Scanner;
公共类播放列表{
私有字符串名称;
私人ArrayList歌曲列表;
公共字符串getName(){
返回此.name;
}
公共字符串集合名(字符串名){
返回this.name=name;
}
公共阵列列表getsongList(){
返回此.songList;
}
公共ArrayList歌曲列表(ArrayList歌曲列表){
返回this.songList=songList;
}
@凌驾
公共字符串toString(){
返回“PlayList[name=“+name+”,Songlist=“+Songlist+”];
}
公共播放列表(){
this.name=“Untitled”;
}
公共播放列表(字符串newName){
this.name=newName;
songList=new ArrayList();//为两个构造函数添加
}
/**
*最长的方法。从文件中获取输入,将其转换为字符串并显示
*歌曲或“加载”它
**/
公共布尔加载歌曲(字符串文件名){
试一试{
文件文本=新文件(文件名);
扫描仪扫描=新扫描仪(文本);
while(scan.hasNextLine()){
stringart=“任何东西”;
字符串sng=“somethingelse”;
对于(inti=0;i=60){//如果s=135
秒=s/60;//秒=2.25或2
rem=s%60;//rem=15
s=rem;//s现在是15
min=m*sec+m;//1*2+1=3
}
Song anysong=新歌(艺术、sng、min、s);
歌曲列表。添加(任意歌曲);
}
}
}
返回true;
}捕获(例外e){
返回false;
}
}
公共布尔清除(){
如果(!songList.isEmpty()){
songList.clear();
返回true;
}
返回false;
}
公共歌曲(歌曲s){
如果(歌曲列表添加){
返回true;
}
返回false;
}
公共歌曲移除歌曲(int索引){
指数=0;
int i=0;
//检查索引是否在歌曲列表的边界内
如果(索引>=0&&index=0&&indexsongList.size();j++){
歌曲列表。删除(s);
if(songList.remove(j).equals(songList.remove(j+1))){
发现=真;
返回s;
}否则{
返回null;
}
//比较所有这些
//你现在正在做的是删除所有歌曲
//如果发现两个为真,则将ffound设置为真
//如果find为true,则返回s;如果find为false,则返回null
}
返回s;
}
//getSong方法
公共歌曲getSong(整数索引){
int i=0;
if(index>=0&&index songList.size();z++){
System.out.println(歌曲列表);
}
}
公共整数大小(){
返回songList.size();
}
}这是你的问题:

public ArrayList setsongList(ArrayList songList) {
    return this.songList = songList;
}
这是接受并返回原始类型的
ArrayList
,而字段
This.songList
ArrayList
。这是一个很大的禁忌。请修改代码,将参数化类型作为参数,然后返回参数化类型

修订版

public ArrayList<Song> setsongList(ArrayList<Song> songList) {
    return this.songList = songList;
}
publicArrayList歌曲列表(ArrayList歌曲列表){
返回this.songList=songList;
}

非常感谢!这个问题已经解决了,但现在还有其他问题:/n好吧,你可以投票/接受这个问题的任何正确答案,然后用你的新问题开始一个新问题。@roippi不,它是一个(不一定非常可读)分配的方式,同时返回右侧。嗯,你能告诉我到底要更改什么吗?因为它不接受返回这个。歌曲列表either@AliKhan你确定错误仍然是一样的吗?你把返回类型和参数类型改成参数化了吗?因为弗吉尼亚理工大学可能有某种反剽窃政策冰冷(我无从知晓),我无法提供您所需的确切代码。我所做的只是将参数改为ArrayList,而不是ArrayList,但它仍然是一样的,是否必须更改返回语句?@AliKhan您需要更改声明的返回类型。返回语句本身很好。既然您批准了,我现在就为您做。